xlsx转csv时空单元格NaN未写入问题求助(Python Pandas)
解决Pandas导出CSV时保留NaN的问题
嘿,这个问题我太熟悉了!你控制台里能看到NaN,但导出CSV后变成空单元格,是因为Pandas默认会把缺失值(NaN)导出为空字符串,而不是把"NaN"这个文本写进去。只需要调整to_csv()的参数就能搞定。
具体解决方案:
- 首先,读取Excel的代码可以微调下,Windows路径建议用原始字符串(加个
r前缀),避免转义字符的坑:df = pd.read_excel(r'C:\Users\1480587\Documents\Chander\Elastic\Data\Dec_Inc_Data.xlsx') - 导出CSV时,一定要加上
na_rep='NaN'参数,这个参数就是指定缺失值要替换成的字符串:# 导出CSV,保留NaN为字符串,同时可选去掉行索引(index=False) df.to_csv('your_output_file.csv', na_rep='NaN', index=False)
关键参数解释:
na_rep='NaN':强制Pandas把DataFrame里的所有NaN值,替换成"NaN"字符串写入CSV文件,这样空单元格就会显示你想要的"NaN"了。index=False:如果不需要导出默认的行索引列,可以加上这个参数,让CSV更干净,按需选择就行。
验证方法:
导出完成后,你可以直接打开CSV文件查看,或者用Pandas再读回来确认:
test_df = pd.read_csv('your_output_file.csv') print(test_df)
这时候你会看到空单元格已经显示为"NaN"了。
内容的提问来源于stack exchange,提问作者Chander
相关产品推荐
相关产品推荐

