熊猫数据框合并

时间:2018-12-27 16:34:14

标签: pandas merge

我有一个奇怪的熊猫问题。

我有一个主数据框:

   a   b   c
0  22  44  55
1  22  45  22
2  44  23  56
3  45  22  33

然后我有了一个不同维度的数据框,其中包含一些重叠索引和列名

index   col_name  new_value
0        a          111 
3        b          234

然后我要说的是,如果您在主数据框中找到索引和col_name的匹配项,然后替换该值。

所以输出将是

   a   b   c
0  111  44  55
1  22  45  22
2  44  23  56
3  45  234  33

我找到了“ Combine_first”,但是除非我旋转第二个数据框(在这种情况下我无法做到),否则这是行不通的

1 个答案:

答案 0 :(得分:5)

这是update问题

df.update(updated.pivot(*updated.columns))
df
Out[479]: 
       a      b   c
0  111.0   44.0  55
1   22.0   45.0  22
2   44.0   23.0  56
3   45.0  234.0  33

df.values[updated['index'].values,df.columns.get_indexer(updated.col_name)]=updated.new_value.values
df
Out[495]: 
     a    b   c
0  111   44  55
1   22   45  22
2   44   23  56
3   45  234  33