在熊猫中读取CSV时忽略行

时间:2018-09-20 00:11:00

标签: python pandas csv

在Pandas数据框中执行计算时出现问题...这是一个示例CSV(参见图片):sample CSV

我的问题是,由于它以斜体读取行,例如数据类型(第2行),它将所有值都视为字符串,而不是其正确的数据类型(即浮点数,度数等)。有没有一种方法可以让我在读取CSV时忽略此行,例如

df = pd.read_CSV(“示例CSV”,忽略第2行)

这样,它将像这样读取(请参见其他图片)并假定正确的数据类型:

enter image description here

3 个答案:

答案 0 :(得分:2)

您可以将列表传递到skiprows以仅跳过该行。来自docs

  

skiprows:类似列表或整数或可调用,默认为无

     

文件开头要跳过的行号(0索引)或要跳过的行号(int)。

尝试:

pd.read_csv('my.csv', skiprows=[1])

请注意python从0开始计数。因此该列(在python中)为1

答案 1 :(得分:1)

您可以使用skiprows=[0],有关更多详细信息,请参见documentation

df = pd.read_csv('Your Filename', skiprows=[0])

答案 2 :(得分:0)

您应在header中使用read_CSV参数。例如:

df = pd.read_CSV('sample CSV', header=2)

这不会在第一行中分配名称。您可能可以通过手动传递列名称来实现:

df = pd.read_CSV('sample CSV', header=2, names=['UTC Time', 'Value1', 'Value2', 'Value3'])

您甚至可以通过编程获得名称:

with open('filename.csv', 'r') as fh:
    names = fr.readline().split(',')
df = pd.read_CSV('sample CSV', header=2, names=names)

(所有代码都未经测试)