首页 > 解决方案 > 通过比较行创建新列

问题描述

我的输入数据是这样的

df = pd.DataFrame({'A':[1,2,3,4], 'B':['x','y','x','y'], 'C':['S1','S1','S2','S2']})

    A   B   C
0   1   x   S1
1   2   y   S1
2   3   x   S2
3   4   y   S2

我想按“C”分组。然后对于组中的 2 行,使用 B 的值将 A 的值分配到另一列并将其减少到一行。

它应该变成

    C   D_x D_y
0   S1  1   2
1   S2  3   4

真实数据有十万多行,但总是分成两行。会有其他列,但它们在组内保持不变。

谢谢

标签: pandas

解决方案


你需要的更像是一个pivot

df.pivot('C','B','A')
Out[209]: 
B   x  y
C       
S1  1  2
S2  3  4

推荐阅读