pandas.read_csv中的头参数是什么意思?

时间:2015-09-23 10:28:12

标签: python csv pandas header

我有一个包含以下内容的csv文件:

col1;col2;col3
1.0;10.0;100.0
2.0;20.0;200.0
3.0;30.0;300.0

然后我用以下方式用熊猫阅读它:

df = pandas.read_csv('test.csv', sep=';', header=True)

结果我得到以下数据框:

   1.0  10.0  100.0
0    2    20    200
1    3    30    300

这意味着pandas使用 second 为列命名(列名为1.0,10.0和100.0)。如果使用header = False代替:

df = pandas.read_csv('test.csv', sep=';', header=False)

我得到下表:

   col1  col2  col3
0     1    10   100
1     2    20   200
2     3    30   300

这意味着pandas使用第一行作为标题,尽管我明确写明没有标题。

这种行为对我来说并不直观。有人能解释一下发生了什么吗?

1 个答案:

答案 0 :(得分:9)

你告诉大熊猫你的标题行是什么行,通过将False这个评估结果传递给0这就是为什么当你通过{{1时,它将第一行作为标题按预期读取的原因它评估为True所以它读取第二行,如果你传递1,那么它认为没有标题行并且将自动生成序数值。

None

<强>更新

从版本In [17]: import io import pandas as pd t="""col1;col2;col3 1.0;10.0;100.0 2.0;20.0;200.0 3.0;30.0;300.0""" print('False:\n', pd.read_csv(io.StringIO(t), sep=';', header=False)) print('\nTrue:\n', pd.read_csv(io.StringIO(t), sep=';', header=True)) print('\nNone:\n', pd.read_csv(io.StringIO(t), sep=';', header=None)) False: col1 col2 col3 0 1 10 100 1 2 20 200 2 3 30 300 True: 1.0 10.0 100.0 0 2 20 200 1 3 30 300 None: 0 1 2 0 col1 col2 col3 1 1.0 10.0 100.0 2 2.0 20.0 200.0 3 3.0 30.0 300.0 开始,这将提升TypeError