如何检测dtype为object的数组中的空值并将其替换为"0000"?
解决方案
针对object类型列的空值替换需求,可直接使用pandas内置的填充、替换方法实现,不会影响列中原有单个数值、分号分隔数值组合的结构。
基础替换(仅处理NaN空值)
如果你的空值为pandas标准的NaN类型,直接用fillna方法即可:
import pandas as pd # 仅替换Numbers列的NaN为"0000" df['Numbers'] = df['Numbers'].fillna('0000')
全场景替换(覆盖NaN、空字符串、空白字符串)
如果你的数据表中存在肉眼看起来是空的单元格,但实际为空字符串''、仅含空格/制表符的字符串,可使用replace方法配合正则匹配覆盖所有空值场景:
import pandas as pd import numpy as np # 同时替换NaN、空字符串、全空白字符串为"0000" df['Numbers'] = df['Numbers'].replace( [np.nan, '', r'^\s*$'], '0000', regex=True )
结果验证
执行替换后可通过以下代码校验空值是否全部处理完成:
# 统计剩余NaN数量 print(f"剩余NaN数量:{df['Numbers'].isna().sum()}") # 统计剩余空字符串数量 print(f"剩余空字符串数量:{(df['Numbers'] == '').sum()}")
内容的提问来源于stack exchange,提问作者Kyle Reagan
相关产品推荐
相关产品推荐

