即使 index_col=None,Pandas read_excel 有时也会创建索引

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 。

Xuk*_*rao 8

您描述的问题与已知的 pandas 错误相匹配。这个错误在最近的pandas 0.24.0 版本中已修复:

Bug修复