如何使用panda填充与原始数据的子字符串一致的新列单元格的一些数据



有两个数据帧,它们具有相似的数据。

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

最新更新