替换字典值中的值



1.我有一个数据帧输入:

emp data
pp  ab
qq  bc
rr  cs
ss  dp

字典:

df_r.to_dict('dict')

2.我有另一个数据帧,其名称具有字符串值:

ID name
1  ['u']['s']
2  ['v']['ab']
3  ['w']['dp']
4  ['x']['t']

字典:

df.to_dict('dict')

预期结果:我想根据数据的emp值替换name的值

ID name
1  ['u']['s']
2  ['v']['pp']
3  ['w']['ss']
4  ['x']['t']

代码:我试过

mapper = dict(df_r[["data", "emp"]].values)
mapper
df.name = df.name.replace(mapper).values
df

问题:未对值进行任何替换。数据帧不受影响。

将第一个数据帧转换为dict,然后使用它更新第二个数据帧。步骤:

数据帧:

import pandas as pd
df1 = pd.DataFrame([['pp', 'ab'], 
['qq','bc'],
['rr', 'cs'],
['ss', 'dp']],
columns=['emp', 'data'])
df2 = pd.DataFrame([['u', 's'],
['v', 'ab'],
['w', 'dp'],
['x', 't']],
columns=['ID', 'name'])

从df1中获取dictionary,其中数据keysemp作为values

将数据作为Dataframe中的索引,然后转换为dict

df1_dict = df1.set_index('data').to_dict()['emp']

替换df2的name列中的值

df2['name'] = df2['name'].replace(df1_dict)

输出:

ID name
0  u    s
1  v   pp
2  w   ss
3  x    t

最新更新