使用header / skiprows参数读取csv后,参数值变为NaN

时间:2016-09-15 13:13:28

标签: python pandas

我试图打开一个跨越多行的标头的csv文件。为避免处理MultiIndex,我使用header参数跳过某些行,但所有值都变为NaN。

重现错误的示例:

,,
x,a,c
y,b,d
labels,l1,l2
2016-01-01,1,6
2016-01-02,2.0,7.0
2016-01-03,3.0,8

test.csv

t = pandas.read_csv('test.csv',skiprows=3, header=[0], index_col=[0]

t = pandas.read_csv('test.csv', header=[3], index_col=[0] )

产生相同的输出

labels       l1   l2
2016-01-01  NaN  NaN
2016-01-02  NaN  NaN
2016-01-03  NaN  NaN

[3 rows x 2 columns]

当我使用所有3个标题行时

t = pandas.read_csv('test.csv', header=[1,2,3], index_col=[0] )

它可以工作,我可以访问数据。

我错过了什么或这是一个错误吗?

ps:我现在正在使用MultiIndex,我遇到了一个问题,因为我忘记了一个参数(标题有8行......)

2 个答案:

答案 0 :(得分:2)

怎么样:

my_file = 'test.csv'
df = pd.read_csv(my_file, sep=',', names=['labels', 'l1', 'l2'], skiprows=4, header=None)

完全忘掉前4行并自己指定标题。

答案 1 :(得分:1)

试试这个:

In [20]: pd.read_csv(filename, skiprows=3)
Out[20]:
       labels   l1   l2
0  2016-01-01  1.0  6.0
1  2016-01-02  2.0  7.0
2  2016-01-03  3.0  8.0