在对A列进行分组之后,将B列的唯一值旋转到新列

时间:2018-11-11 02:27:36

标签: python pandas

我有以下数据框:

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尝试了多种不同的技术,但是我似乎无法获得想要的结果。

1 个答案:

答案 0 :(得分:1)

由于每个唯一的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