Pandas读取Excel时'NA'被转为NaN的问题及解决方法
问题与解决办法
问题情况
- 原始Excel表格中包含字符串
NA - 使用以下代码合并多个Excel文件:
from pathlib import Path import pandas as pd p = Path(r'/.') df = pd.concat([pd.read_excel(f) for f in p.rglob('test.xlsx')], ignore_index=True) df df.to_excel("final.xlsx")
- 出现的问题:
- 合并后的DataFrame中,原始的字符串
NA被转换为NaN - 将DataFrame导出为Excel后,原本的
NA字符串位置变成空白
- 合并后的DataFrame中,原始的字符串
解决办法
在读取Excel文件时,设置参数keep_default_na=False(关闭pandas默认将NA识别为缺失值的行为)。修改后的代码如下:
from pathlib import Path import pandas as pd p = Path(r'/.') df = pd.concat([pd.read_excel(f, keep_default_na=False) for f in p.rglob('test.xlsx')], ignore_index=True) df.to_excel("final.xlsx")
内容的提问来源于stack exchange,提问作者Siddharth Chavan
相关产品推荐
相关产品推荐

