You need to enable JavaScript to run this app. pandas替换None为np.nan后做字段映射,None重新出现如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

pandas替换None为np.nan后做字段映射,None重新出现如何解决?

错误原因

你的问题核心出在维度归约的自定义函数reduce_housing_status中,Homeless分类的分支漏写了return关键字。

Python的函数如果没有显式声明return返回值,执行完对应分支的逻辑后会默认返回None。你代码中elif x in Homeless:分支下仅写了字符串'Homeless',没有加return,所以所有属于这个分类的原始有效值,都会被函数处理成None,这就是映射后重新出现空值的直接原因。

至于二次运行映射后None消失的现象,大概率是你二次运行时完整重跑了「替换None为np.nan→众数填充空值→映射」的全流程,而不是在第一次映射得到None的结果上单独执行映射逻辑。如果直接在第一次映射后的结果上单独重跑映射,这些None会进入else分支原样返回,不会消失。

修正方案

补全Homeless分支的return语句即可:

def reduce_housing_status(x):
    if x in Own:
        return 'Own'
    elif x in Rent:
        return 'Rent'
    elif x in Homeless:
        return 'Homeless'
    elif x in Live_with_Others:
        return 'Live_with_Others'
    elif x in Treatment_Facility:
        return 'Treatment_Facility'
    else:
        return x

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 17:57:01