猿问

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

我有一本字典,其中包含以下与“伦敦”相关的键作为值。我遇到的问题是我想检查列值是否包含我的键值。因此,邮政编码值应映射到“伦敦”,但它们目前映射到“所有其他”。


换句话说,邮政编码“SW4 7SS”中有“SW4”,因此应该映射到“伦敦”,但是,它目前正在使用我的代码映射到“所有其他”。


我只有一个映射可用于字典中的当前键。请告知如何处理熊猫。


postal_code= {'SE10':'London',

'SW4':'London',

'SW9':'London',

'SW18':'London',

'   ': 'All Other'

}

Postal Code

SW4 7SS

SW4 6QD

SW4 7UD

df['Region']=df['Postal Code'].map(postal_code)


慕尼黑8549860
浏览 76回答 1
1回答

UYOU

首先在正则表达式中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  Region0     SW4 7SS  London1     SW4 6QD  London2     SW4 7UD  London
随时随地看视频慕课网APP

相关分类

Python
我要回答