Pandas:根据其他两列更改其中一列中的值的最有效方法

max*_*mus 3 python pandas

基于其他 2 列对 Pandas DF 中的列执行操作的最佳方法是什么。其中一列具有值,而另一列具有用于填充数据的列名称。

value   B   C1  C2  C3  C4  C5
1       C2   0   0   0   0   0
5       C3   0   0   0   0   0
3       C5   0   0   0   0   0 
Run Code Online (Sandbox Code Playgroud)

value具有值,列B具有要填写的列的详细信息。因此,结果应如下所示:

value   B   C1  C2  C3  C4  C5
1       C2   0   1   0   0   0
5       C3   0   0   5   0   0
3       C5   0   0   0   0   3 
Run Code Online (Sandbox Code Playgroud)

关于这样做的最有效方法的任何评论,或者在这里应用我最好的朋友?

WeN*_*Ben 7

我们做pivot那么update

df.update(df.pivot(columns='B',values='value'))
df
   value   B  C1   C2   C3  C4   C5
0      1  C2   0  1.0  0.0   0  0.0
1      5  C3   0  0.0  5.0   0  0.0
2      3  C5   0  0.0  0.0   0  3.0
Run Code Online (Sandbox Code Playgroud)