Pandas:搜索字典中的子字符串是否包含键,并返回valu

2024-04-18 15:53:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字典(键,值)和一个使用pandas的数据帧。在

mydict = {'KULAR LUMPUR' : 'MY',
            'SINGAPORE' : 'SG',
            'HONG KONG' : 'HK',
            'VIETNAM': 'VN'}

以及一个列为['Address']

^{pr2}$

如果在字典的键中找到子字符串,我如何在数据帧中搜索以从字典中获取值。在

例如

                              Address Code
0  234 JALAN ST KULAR LUMPUR MALAYSIA   MY
1       123 BUILDING STREET SINGAPORE   SG
2          67 CANNING VALE, HONG KONG   HK

Tags: 数据pandas字典addressmysgmydicthong
1条回答
网友
1楼 · 发布于 2024-04-18 15:53:44

^{}by regex与带^{}的字典键一起使用:

df = pd.DataFrame({'Address': ['234 JALAN ST KULAR LUMPUR MALAYSIA', 
                               '123 BUILDING STREET SINGAPORE', 
                               '67 CANNING VALE, HONG KONG']})

print (df)
                              Address
0  234 JALAN ST KULAR LUMPUR MALAYSIA
1       123 BUILDING STREET SINGAPORE
2          67 CANNING VALE, HONG KONG

mydict = {'KULAR LUMPUR' : 'MY',
            'SINGAPORE' : 'SG',
            'HONG KONG' : 'HK',
            'VIETNAM': 'VN'}

pat = '|'.join(r"\b{}\b".format(x) for x in mydict.keys())
df['Code'] = df['Address'].str.extract('('+ pat + ')', expand=False).map(mydict)

print (df)
                              Address Code
0  234 JALAN ST KULAR LUMPUR MALAYSIA   MY
1       123 BUILDING STREET SINGAPORE   SG
2          67 CANNING VALE, HONG KONG   HK

说明

^{pr2}$

\b被称为\b
|用于regexOR

相关问题 更多 >