需要帮助了解read_excel(pandas)中的索引栏

2024-10-02 10:20:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个excel文件,其中第一列是“ID”,项目的格式是IDXXX。在

这个代码

s = pd.read_excel('error4.xlsx', keep_default_na = False, index_col = 0)

出现错误

^{pr2}$

我试过看文件,但我不明白。如果我删除index_col = 0,它可以正常工作。index_col = 'ID'也不起作用。在


Tags: 文件项目代码iddefaultreadindex格式
1条回答
网友
1楼 · 发布于 2024-10-02 10:20:07

出现错误的原因是:

keep_default_na = False

根据文件:

^{pr2}$

所以,如果您没有指定任何要转换为NaN的新值,为什么需要这个选项

编辑

如果有一个文件只有一列,假设我有一个文件output2.csv,其中只有一列:

  cmfa
-0.0019
-0.0018
-0.0033

如果使用以下命令`

s = pd.read_csv('output2.csv',keep_default_na = False,index_col=0)

它将抛出一个错误,说TypeError: unsupported operand type(s) for |: 'list' and 'set'

因为数据集没有要操作的列,也没有保留NaN值的列,而您正尝试使用keep_default_na语句。它只是有一个由列决定的索引。在

然而,以下工作如预期 s = pd.read_csv('output2.csv',index_col=0)

并给出一个输出(注意没有列)

print s
Empty DataFrame
Columns: []
Index: [-0.0019, -0.0018, -0.0033]

如果您确实想保留keep_default_na=False语句,那么必须去掉index_col=0选项,因为该语句需要一些值来操作,并让dataframe的默认索引为0、1、2、3等

编辑2

当您组合index_colkeep_default_na = False语句时,pandas似乎不起作用,正如文档所说,它也不希望在没有指定na_values的情况下指定keep_default_na = False

因此,请在您的案例中使用以下内容:

s = pd.read_csv('output.csv',na_values=[],keep_default_na = False,index_col=0)

如果不指定na_valueskeep_default_na=False将独立工作,如果index_col = None or False否则它将为index_col的任何其他值抛出错误。因此,一个好的编程实践是在这种情况下使用na_values选项,尽管我同意在pandas中应该有更好的错误处理。在

相关问题 更多 >

    热门问题