我有这个数据
| id | name | action|
| 1 | user1| action1|
| 2 | user2| action1|
| 3 | user1| action56|
| 4 | user3| action49|
| 5 | user1| action649|
我想得到这个:
| id | name | action | action2 | action3 |
| 1 | user1| action1| action56| action649|
| 2 | user2| action1|
| 4 | user3| action49|
我已经知道如何获取第一个重复项和最后一个重复项,但是我不知道如何“转换”数据框
答案 0 :(得分:2)
在使用pivot
+ groupby
创建密钥之后,这是一个cumcount
问题
df.assign(key=df.groupby('name').cumcount()+1).pivot('name','key','action').add_prefix('action_')
key action_1 action_2 action_3
name
user1 action1 action56 action649
user2 action1 None None
user3 action49 None None
答案 1 :(得分:1)
df['action']=df.groupby('name')['action'].transform(','.join)
df=df.drop_duplicates('name')
print(df)
#id name action
#0 1 user1 action1, action56, action649
#1 2 user2 action1
#3 4 user3 action49