我有一个数据框,看起来像df =
ID CODE
0 id1 A
1 id1 B
2 id1 C
3 id2 D
4 id2 E
5 id3 A
6 id3 E
7 id3 F
我想从df创建熊猫数据帧,看起来像是df2 =
ID CODE1 CODE2
0 id1 A B
1 id1 A C
2 id1 B C
3 id2 D E
4 id3 A E
5 id3 A F
6 id3 E F
我想在ID的两列中为代码配对 我是熊猫数据框中的新手,我不知道该如何实现 注意:df数据框包含数千条记录,这仅是示例 谢谢您的帮助
答案 0 :(得分:0)
IIUC,一种实现方式
df.groupby('ID').CODE.agg(list).apply(lambda x: pd.Series(tuple(itertools.combinations(x,2))))\
.stack().apply(pd.Series)\
.reset_index(level=1,drop=True)\
.rename(columns={0: 'Code1', 1:'Code2'})
Code1 Code2
ID
id1 A B
id1 A C
id1 B C
id2 D E
id3 A E
id3 A F
id3 E F