我的数据代表的帖子包含有关发布它的用户以及与之关联的标签的信息。
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]
这样我就可以列出帖子和标签,而不是每个都是个人的。
有什么想法吗?
答案 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]