Python Pandas设置keep_default_na=False后fillna失效,如何填充空字段?
Pandas读取Excel保留"NA"字符串同时正常填充空值的解决方案
两种实现路径可选:
方案1(推荐):调整读取参数,从根源区分「NA产品名」和真·空值
无需修改后续填充逻辑,仅自定义缺省值识别规则,跳过对字符串NA的NaN转换,其余空单元格仍会被识别为NaN:
import pandas as pd # 自定义缺省值列表,移除默认的'NA',其余常规缺省标识保留 custom_na_values = [ '', '#N/A', '#N/A N/A', '#NA', '-1.#IND', '-1.#QNAN', '-NaN', '-nan', '1.#IND', '1.#QNAN', '<NA>', 'N/A', 'NULL', 'NaN', 'n/a', 'nan', 'null' ] df = pd.read_excel('Import_orders.xlsx', na_values=custom_na_values, keep_default_na=False) # 原有fillna逻辑可直接正常运行 df['Action for Contact'] = df['Action for Contact'].fillna('Update')
方案2:不修改读取逻辑,直接替换现有空值
keep_default_na=False会将Excel内的空单元格识别为空字符串'',直接对目标列的空字符串做替换即可:
# 方法一:直接替换空字符串 df['Action for Contact'] = df['Action for Contact'].replace('', 'Update') # 方法二:先转NaN再填充,兼容原有fillna逻辑 import numpy as np df['Action for Contact'] = df['Action for Contact'].replace('', np.nan).fillna('Update')
内容的提问来源于stack exchange,提问作者hii
相关产品推荐
相关产品推荐

