构造一个数据框,该数据框根据另一个数据框对项目进行分组

时间:2018-07-28 10:44:49

标签: python pandas dataframe

我有一个数据框,看起来像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数据框包含数千条记录,这仅是示例 谢谢您的帮助

1 个答案:

答案 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