假设我有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/

10-11 08:39