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

如何用字典映射Pandas列值,无匹配项设为None?

解决DataFrame列值映射且未匹配项设为None的问题

方法1:使用Series.map()(最简洁高效)

map()方法天生适配这种需求——仅映射字典中存在的键,未匹配项自动返回NaN;如果需要严格的None,可通过where()进一步转换:

# 直接映射,未匹配项为NaN
df['col1'] = df['col1'].map(cat_dic)

# 若需将未匹配项明确设为None
df['col1'] = df['col1'].map(cat_dic).where(df['col1'].isin(cat_dic.keys()), None)

方法2:结合replace()与mask()

先完成字典映射,再将原列中不在字典键集合里的值替换为None:

df['col1'] = df['col1'].replace(cat_dic).mask(~df['col1'].isin(cat_dic.keys()), None)

方法3:自定义apply()函数

适合需要更复杂逻辑的场景,利用字典的get()方法指定未匹配时返回None:

def map_category(x):
    return cat_dic.get(x, None)

df['col1'] = df['col1'].apply(map_category)

内容的提问来源于stack exchange,提问作者M.Tailleur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:46:04