2024-10-02 10:20:07 发布
网友
我有一个excel文件,其中第一列是“ID”,项目的格式是IDXXX。在
这个代码
s = pd.read_excel('error4.xlsx', keep_default_na = False, index_col = 0)
出现错误
我试过看文件,但我不明白。如果我删除index_col = 0,它可以正常工作。index_col = 'ID'也不起作用。在
index_col = 0
index_col = 'ID'
出现错误的原因是:
keep_default_na = False
根据文件:
所以,如果您没有指定任何要转换为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'
TypeError: unsupported operand type(s) for |: 'list' and 'set'
因为数据集没有要操作的列,也没有保留NaN值的列,而您正尝试使用keep_default_na语句。它只是有一个由列决定的索引。在
然而,以下工作如预期 s = pd.read_csv('output2.csv',index_col=0)
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等
keep_default_na=False
index_col=0
当您组合index_col和keep_default_na = False语句时,pandas似乎不起作用,正如文档所说,它也不希望在没有指定na_values的情况下指定keep_default_na = False
index_col
na_values
因此,请在您的案例中使用以下内容:
s = pd.read_csv('output.csv',na_values=[],keep_default_na = False,index_col=0)
如果不指定na_values,keep_default_na=False将独立工作,如果index_col = None or False否则它将为index_col的任何其他值抛出错误。因此,一个好的编程实践是在这种情况下使用na_values选项,尽管我同意在pandas中应该有更好的错误处理。在
index_col = None or False
出现错误的原因是:
根据文件:
^{pr2}$所以,如果您没有指定任何要转换为NaN的新值,为什么需要这个选项
编辑
如果有一个文件只有一列,假设我有一个文件output2.csv,其中只有一列:
如果使用以下命令`
它将抛出一个错误,说
TypeError: unsupported operand type(s) for |: 'list' and 'set'
因为数据集没有要操作的列,也没有保留NaN值的列,而您正尝试使用keep_default_na语句。它只是有一个由列决定的索引。在
然而,以下工作如预期
s = pd.read_csv('output2.csv',index_col=0)
并给出一个输出(注意没有列)
如果您确实想保留
keep_default_na=False
语句,那么必须去掉index_col=0
选项,因为该语句需要一些值来操作,并让dataframe的默认索引为0、1、2、3等编辑2
当您组合
index_col
和keep_default_na = False
语句时,pandas似乎不起作用,正如文档所说,它也不希望在没有指定na_values
的情况下指定keep_default_na = False
因此,请在您的案例中使用以下内容:
如果不指定
na_values
,keep_default_na=False
将独立工作,如果index_col = None or False
否则它将为index_col
的任何其他值抛出错误。因此,一个好的编程实践是在这种情况下使用na_values
选项,尽管我同意在pandas中应该有更好的错误处理。在相关问题 更多 >
编程相关推荐