对列a进行分组后,将列B中的唯一值透视到新列



我有以下数据帧:

COL_A   COL_B
1   a
1   b
2   a
2   b
3   a
3   b
4   c
4   d
5   c
5   d

我试图将COL_A中的值分组,并将COL_B中的唯一值转换为新的列

COL_A   COL_B   COL_C
1   a   b
2   a   b
3   a   b
4   c   d
5   c   d

我在df.groupby和df.pivot上尝试了很多不同的技术,但似乎无法得到我想要的结果。

由于每个唯一的COL_A值总是恰好出现两次,因此您可以重塑您的系列并将其提供给pd.DataFrame构造函数:

df = df.sort_values('COL_A')
arr = df['COL_B'].values.reshape(-1, 2)
res = pd.DataFrame({'COL_A': df['COL_A'].unique(),
'COL_B': arr[:, 0],
'COL_C': arr[:, 1]})
print(res)
COL_A COL_B COL_C
0      1     a     b
1      2     a     b
2      3     a     b
3      4     c     d
4      5     c     d

最新更新