根据其他数据框列映射熊猫列中类别的值

时间:2020-06-09 13:58:34

标签: python pandas

我有两个熊猫数据框。

其中一个对这样的列进行了分类。

var1 | var2 
-----|------
A    |x
B    |y
C    |z

另一个具有以上数据框各列中每个类别的证据权重(祸患)。

var_name | category | value
---------|----------|---------
var1     |A         |0.2
var1     |B         |0.3 
var1     |C         |0.4
var2     |x         |0.8
var2     |y         |0.9 
var2     |z         |1

我想将 value 列值映射到第一个数据框,并得到如下示例所示的结果:

var1 | var2
-----|------
0.2  |0.8
0.3  |0.9
0.4  |1

我对应用它感到困惑。

有人有小费吗?

非常感谢您!

1 个答案:

答案 0 :(得分:3)

我们可以将df2更改为dict然后执行replace

d = df2.set_index('category').groupby('var_name').agg(dict).value.to_dict()
df1 = df1.replace(d)
Out[424]: 
   var1  var2
0   0.2   0.8
1   0.3   0.9
2   0.4   1.0