使用掩码和多个映射替换列值



我有两个数据帧。一个是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,具有映射序列mupdateVendor_Name列中的映射值

>>> n_df
Vendor_Name GL_Transaction_Description
0        AMEX                  HELLO 345
1      GOOGLE                    BYE 456
2       APPLE                 THANKS 123

最新更新