您希望 header=None 将 False 类型提升为 int 到 0 请参阅 docs 强调我的:
header : 整数或整数列表,默认“推断”行号用作
列名和数据的开头。默认行为就像
如果没有传递名称,则设置为 0,否则设置为 None。显式传递 header=0
能够替换现有名称。标题可以是一个列表
指定列上多索引的行位置的整数
例如[0,1,3]。未指定的中间行将被跳过
(例如,跳过此示例中的 2)。请注意,此参数忽略
如果skip_blank_lines=True,则注释行和空行,所以header=0
表示数据的第一行而不是文件的第一行。
你可以看到行为的不同,首先是header=0:
In [95]:
import io
import pandas as pd
t="""a,b,c
0,1,2
3,4,5"""
pd.read_csv(io.StringIO(t), header=0)
Out[95]:
a b c
0 0 1 2
1 3 4 5
现在None:
In [96]:
pd.read_csv(io.StringIO(t), header=None)
Out[96]:
0 1 2
0 a b c
1 0 1 2
2 3 4 5
请注意,在最新版本 0.19.1 中,这现在将引发 TypeError:
In [98]:
pd.read_csv(io.StringIO(t), header=False)
TypeError:将 bool 传递给 header 无效。使用 header=None 表示没有
header 或 header=int 或类似列表的整数来指定行
增加列名