Bil*_*ill 6 python indexing excel dataframe pandas
我正在尝试将 excel 文件读入数据框中,并且我想稍后设置索引,所以我不希望大熊猫使用第 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
Run Code Online (Sandbox Code Playgroud)
但是当工作表在单元格 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
Run Code Online (Sandbox Code Playgroud)
这不是我想要的。
预期结果:与第一个示例相同(但可能将“未命名”作为列标签)。
文档说
index_col : int,int 列表,默认无。
用作 DataFrame 行标签的列(0 索引)。如果没有这样的列,则传递 None 。
您描述的问题与已知的 pandas 错误相匹配。这个错误在最近的pandas 0.24.0 版本中已修复:
Bug修复
- read_excel()中的错误
index_col=None没有受到尊重并解析索引列(GH18792、GH20480)