将第一个数据帧转换为
从df1中获取dictionary,其中数据为
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,其中数据为keys
,emp作为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