为了账号安全,请及时绑定邮箱和手机立即绑定

在被映射的列包含较大字符串的情况下将字典中的键映射到值

在被映射的列包含较大字符串的情况下将字典中的键映射到值

慕尼黑8549860 2022-12-20 09:47:29
我有一本字典,其中包含以下与“伦敦”相关的键作为值。我遇到的问题是我想检查列值是否包含我的键值。因此,邮政编码值应映射到“伦敦”,但它们目前映射到“所有其他”。换句话说,邮政编码“SW4 7SS”中有“SW4”,因此应该映射到“伦敦”,但是,它目前正在使用我的代码映射到“所有其他”。我只有一个映射可用于字典中的当前键。请告知如何处理熊猫。postal_code= {'SE10':'London','SW4':'London','SW9':'London','SW18':'London','   ': 'All Other'}Postal CodeSW4 7SSSW4 6QDSW4 7UDdf['Region']=df['Postal Code'].map(postal_code)
查看完整描述

1 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

首先在正则表达式中dict.keys加入|which is operator。or然后用于Series.str.extract从您的列中提取这些值。最后使用Series.map将值映射到您的字典:


regex = '|'.join(postal_code.keys())

df['Region'] = df['Postal Code'].str.extract(f"({regex})")[0].map(postal_code) 


  Postal Code  Region

0     SW4 7SS  London

1     SW4 6QD  London

2     SW4 7UD  London


查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号