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


慕的地10843
浏览 137回答 1
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_C0      1     a     b1      2     a     b2      3     a     b3      4     c     d4      5     c     d
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python