Pandas合并具有相同UserID的行

时间:2017-07-12 22:22:42

标签: python pandas

我的数据代表的帖子包含有关发布它的用户以及与之关联的标签的信息。

          UserID      PostID  Tags   
0           1         1        A   
1           2         2        A    
2           1         3        A    
3           2         4        B   
4           3         5        B    
5           4         6        B    
6           5         7        A   

我想创建一个新的数据框,每行代表一个像这样的用户。

          UserID      Posts     Tags   
0           1         [1,3]     [A,A]   
1           2         [2,4]     [A,B]   
2           3         [5]       [B]    
3           4         [6]       [B]   
4           5         [7]       [A]    

这样我就可以列出帖子和标签,而不是每个都是个人的。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

将groupby.agg与list

一起使用
df.groupby('UserID', as_index=False)['PostID', 'Tags'].agg(lambda x: list(x))
Out: 
   UserID  PostID    Tags
0       1  [1, 3]  [A, A]
1       2  [2, 4]  [A, B]
2       3     [5]     [B]
3       4     [6]     [B]
4       5     [7]     [A]