我正在尝试将 excel 文件读入数据框,我想稍后设置索引,所以我不希望 pandas 使用第 0 列作为索引值。
默认情况下 ( index_col=None
),它不应该使用第 0 列作为索引,但我发现如果工作表的单元格 A1 中 没有 值,它就会使用。
有什么方法可以克服这种行为(我正在加载许多在单元格 A1 中没有价值的工作表)?
当 test1.xlsx 在单元格 A1 中的值为“DATE”时,这按预期工作:
In [19]: pd.read_excel('test1.xlsx')
Out[19]:
DATE A B C
0 2018-01-01 00:00:00 0.766895 1.142639 0.810603
1 2018-01-01 01:00:00 0.605812 0.890286 0.810603
2 2018-01-01 02:00:00 0.623123 1.053022 0.810603
3 2018-01-01 03:00:00 0.740577 1.505082 0.810603
4 2018-01-01 04:00:00 0.335573 -0.024649 0.810603
但是当工作表在单元格 A1 中没有值时,它会自动将第 0 列值分配给索引:
In [20]: pd.read_excel('test2.xlsx', index_col=None)
Out[20]:
A B C
2018-01-01 00:00:00 0.766895 1.142639 0.810603
2018-01-01 01:00:00 0.605812 0.890286 0.810603
2018-01-01 02:00:00 0.623123 1.053022 0.810603
2018-01-01 03:00:00 0.740577 1.505082 0.810603
2018-01-01 04:00:00 0.335573 -0.024649 0.810603
这不是我想要的。
期望的结果:与第一个示例相同(但可能使用“未命名”作为列标签)。
文档 说
index_col :int,int列表,默认无。
用作 DataFrame 的行标签的列(从 0 开始索引)。如果没有这样的列,则通过 None。
原文由 Bill 发布,翻译遵循 CC BY-SA 4.0 许可协议
您描述的问题与已知的 pandas 错误相匹配。此错误已在最近的 pandas 0.24.0 版本 中修复: