有两个数据帧,它们具有相似的数据。
A dataframe
Index Business Address
1 Oils Moskva, Russia
2 Foods Tokyo, Japan
3 IT California, USA
... etc.
B dataframe
Index Country Country Calling Codes
1 USA +1
2 Egypt +20
3 Russia +7
4 Korea +82
5 Japan +81
... etc.
我也将在数据帧中添加一个名为"Country Calling Codes"的列。
之后,B数据帧中的"Country"列将与"Address"列的数据进行比较。如果字符串"A"。地址"包括字符串"B"。国家,B。"国家/地区呼叫代码"将插入"A"。"国家/地区调用代码"。
结果是:
Index Business Address Country Calling Codes
1 Oils Moskva, Russia +7
2 Foods Tokyo, Japan +81
3 IT California, USA +1
我不知道如何处理这个问题,因为我没有太多使用熊猫的经验。如果你能帮助我,我将非常感谢你
通过Country
列使用Series.str.extract
获取可能的字符串,然后通过Series
:使用Series.map
d = B.drop_duplicates('Country').set_index('Country')['Country Calling Codes']
s = A['Address'].str.extract(f'({"|".join(d.keys())})', expand=False)
A['Country Calling Codes'] = s.map(d)
print (A)
Index Business Address Country Calling Codes
0 1 Oils Moskva, Russia +7
1 2 Foods Tokyo, Japan +81
2 3 IT California, USA +1
详细信息:
print (A['Address'].str.extract(f'({"|".join(d.keys())})', expand=False))
0 Russia
1 Japan
2 USA
Name: Address, dtype: object