假设我有df1:
col1 col2
Day0 'A' NaN
Day1 'B' 'C'
Day2 'C' 'A'
和df2:
'A' 'B' 'C'
Day0 1 4 3
Day1 2 7 6
Day2 5 1 10
如何使用df2中的值替换df1中的值以获得如下输出:
col1 col2
Day0 1 Nan
Day1 7 6
Day2 10 5
我的想法是,我将这两个数据帧绑定起来,并尝试根据指定的列替换每列上的值,但似乎没有很短的路要走。
最佳答案
通过嵌套使用replace
,但它仅适用于列,因此需要进行双转置:
d = df2.to_dict(orient='index')
print (d)
{'Day2': {"'C'": 10, "'A'": 5, "'B'": 1},
'Day1': {"'C'": 6, "'A'": 2, "'B'": 7},
'Day0': {"'C'": 3, "'A'": 1, "'B'": 4}}
df = df1.T.replace(d).T
print (df)
col1 col2
Day0 1.0 NaN
Day1 7.0 6.0
Day2 10.0 5.0
关于python - Pandas :使用其他数据框中的值分配值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46903330/