2017-07-12 117 views
1

我有表示包含发布它的用户信息和与其关联的标签的帖子的数据。熊猫合并具有相同用户ID的行

  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]  

这样我就可以列出那些帖子和标签,而不是让它们都是单独的。

任何想法?

回答

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] 
相关问题