我有两个数据帧。一个是v_df,看起来像这样:
VENDOR_ID | VENDOR_NAME |
---|---|
123 | 苹果 |
456 | 谷歌 |
987 | 脸书 |
Series.str.extract
+map
i = v_df['VENDOR_ID'].astype(str)
m = v_df.set_index(i)['VENDOR_NAME']
s = n_df['GL_Transaction_Description'].str.extract(r'(d+)', expand=False)
n_df['Vendor_Name'].update(s.map(m))
解释
通过将VENDOR_ID
列设置为索引并选择VENDOR_NAME
列,从v_df
数据帧创建映射系列m
>>> m
VENDOR_ID
123 APPLE
456 GOOGLE
987 FACEBOOK
Name: VENDOR_NAME, dtype: object
现在extract
是来自GL_Transaction_Description
列中字符串的供应商id
>>> s
0 345
1 456
2 123
Name: GL_Transaction_Description, dtype: object
Map
提取的供应商id,具有映射序列m
和update
Vendor_Name
列中的映射值
>>> n_df
Vendor_Name GL_Transaction_Description
0 AMEX HELLO 345
1 GOOGLE BYE 456
2 APPLE THANKS 123