我正试图将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
但是当工作表在单元格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列表,默认为无。
列(0索引)用作DataFrame的行标签。如果没有这样的列,则不传递任何值。
答案 0 :(得分:1)
您正在描述的问题与一个已知的熊猫错误匹配。此错误已在最近的pandas 0.24.0 release中修复:
错误修复
- 闯入read_excel(),其中
index_col=None
不受尊重,反正解析索引列(GH18792,GH20480)
答案 1 :(得分:0)
自从最近几天以来,我基本上面临着同样的问题。
我有一个Excel文件,该文件的第一列标题也为空白。因此,当读取它时,它将作为索引读取。
我尝试了许多选项,但是下面的代码使用跳过行而不是标头选项工作。有趣的是,对于没有标题的列,标题行使用“未命名:0”命名模式,而在使用标题选项的情况下,它们不起作用。我们正在使用熊猫0.20.1版本:
B
文档未提供有关此的更多信息。但是以上解决方法可以节省您的时间。
答案 2 :(得分:-3)
您也可以使用
index_col=0
代替
index_col = None