如何在pandas中基于另一列取值及映射字典创建新列
解决方法
直接用pandas内置的map()方法就能完成匹配,操作步骤如下:
- 先确认你的
Product Code列的数据类型和映射字典Product_Mapping的键类型一致(你给出的示例里二者都是整数,可直接操作) - 执行下面的代码新增
Product Name列:
df['Product Name'] = df['Product Code'].map(Product_Mapping)
补充说明
如果存在部分产品代码没有在映射字典里的情况,匹配不到的值会默认返回NaN,你可以按需补充默认值,比如填充为「未知产品」:
df['Product Name'] = df['Product Code'].map(Product_Mapping).fillna('未知产品')
如果你的Product Code列存储的是字符串格式,只需要先把列转成整数类型,或者把映射字典的键改为对应字符串即可正常匹配。
内容的提问来源于stack exchange,提问作者Calzone
相关产品推荐
相关产品推荐

