我有一个像这样的数据框;
ID code num
333_c_132 x 0
333_c_132 n36 1
998_c_134 x 0
998_c_134 n36 0
997_c_135 x 1
997_c_135 n36 0
由此我必须创建一个新的数据框,如下所示;您可以看到一个新列 numX
是由唯一的 ID
组成的。请注意,numX
值取自与 n36
对应的 num
列。
ID code num numX
333_c_132 x 0 1
998_c_134 x 0 0
997_c_135 x 1 0
如何仅使用 pandas 来做到这一点?
最佳答案
您可以使用蒙版,然后在旋转后合并:
m = df['code'].eq('n36')
(df[~m].merge(df[m].set_index(['ID','code'])['num'].unstack()
,left_on='ID',right_index=True))
ID code num n36
0 333_c_132 x 0 1
2 998_c_134 x 0 0
4 997_c_135 x 1 0
关于pandas:从现有列值创建新数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62474969/