You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将映射字典内空值、Null、NaN、'-'等无效值批量替换为0

空值字典批量清洗解决方案

报错原因

fillna 是Pandas对象(Series/DataFrame)的专属方法,你直接对Python原生字符串、数值类型调用该方法,自然会触发'str' object has no attribute 'fillna'报错。

实现逻辑

你需要先自定义空值匹配规则,覆盖你提到的4类待替换值:''、'-'、None(null)、NaN,再遍历所有州的字典对象批量替换即可,修改会永久生效。

完整代码示例

import numpy as np

# 自定义空值判断规则,覆盖4类待替换值
def is_target_empty(val):
    # 匹配null/None
    if val is None:
        return True
    # 匹配空字符串、横杠
    if isinstance(val, str) and val in ("", "-"):
        return True
    # 匹配NaN
    if isinstance(val, (int, float, np.number)) and np.isnan(val):
        return True
    return False

# 遍历州列表批量处理所有映射对象
for state in state_list:
    current_data = miles_map[state].t5_data
    for key, value in current_data.items():
        if is_target_empty(value):
            current_data[key] = 0

验证方法

处理完成后可直接取值验证替换结果:

print(miles_map['California'].t5_data['valid_unmapped'])
# 输出为0即替换成功

内容的提问来源于stack exchange,提问作者gwydion93

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 18:27:04