我有以下数据框:
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尝试了多种不同的技术,但是我似乎无法获得想要的结果。
答案 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