熊猫read_csv()skiprows = [0]有问题吗?

时间:2019-10-04 05:08:27

标签: python pandas csv

我正在尝试用熊猫读csv。我的文件开始如下:

 Site,Tank ID,Product,Volume,Temperature,Dip Time
   aaa,bbb,....
   .....

我的阅读方式是:

df = pd.DataFrame()
    date_col = ['Dip Time']
    data = pd.read_csv(atg_path, delimiter=',', skiprows=[1], skipinitialspace=True,
                                   dayfirst=True,
                                   parse_dates=date_col)

此处跳过第一行数据。但是我需要。

如果我使用skiprows=[0],则某些列会出现错误,例如ValueError: 'Dip Time' is not in list

我不知道为什么?它不应跳过任何数据。怎么了?

1 个答案:

答案 0 :(得分:-1)

我认为这里的参数skiprows不是必需的,您可以忽略它。

但是如果传递0值,则表示don't skip any rows

skiprows=0

import pandas as pd
from io import StringIO

temp="""Site,Tank ID,Product,Volume,Temperature,Dip Time
aaa,bbb,ccc,ddd,eee,fff
a,b,c,d,e,f
"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(StringIO(temp))
print (df)
  Site Tank ID Product Volume Temperature Dip Time
0  aaa     bbb     ccc    ddd         eee      fff
1    a       b       c      d           e        f

temp="""Site,Tank ID,Product,Volume,Temperature,Dip Time
aaa,bbb,ccc,ddd,eee,fff
a,b,c,d,e,f
"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(StringIO(temp), skiprows=0)
print (df)
  Site Tank ID Product Volume Temperature Dip Time
0  aaa     bbb     ccc    ddd         eee      fff
1    a       b       c      d           e        f

但是,如果通过[0],则意味着删除文件的第一行,这里是标头,意味着"skip the 0'th row, i.e. the headed row

temp="""Site,Tank ID,Product,Volume,Temperature,Dip Time
aaa,bbb,ccc,ddd,eee,fff
a,b,c,d,e,f
"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(StringIO(temp), skiprows=[0])
print (df)
  aaa bbb ccc ddd eee fff
0   a   b   c   d   e   f