Python 重复的行合并为一行,并在一行中添加新列

Python 重复的行合并为一行,并在一行中添加新列,python,pandas,Python,Pandas,我有这些数据 | 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|

我有这些数据

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

我已经知道如何获取第一个副本和最后一个副本,但我不知道如何“转换”数据帧这是使用
groupby
+
cumcount
创建密钥后的
pivot
问题

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

使用
groupby
+
cumcount
创建密钥后,这是一个
pivot
问题

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
你需要

你需要


谢谢它适合我的问题,我刚刚添加了
pd.DataFrame(pivot\u table.to\u records())
以获得一个更适合我的问题的DataFrame对象。向您致敬W-B先生,我真的从您那里得到了灵感,看到您的熊猫知识,您现在是我的理想之一(说实话)++顺便说一句:)先生,我们怎么能像你一样学到任何建议。@RavinderSingh13不断复习好的问答答案,所以,也不是捷径,只是多练习:-)谢谢!它适合我的问题,我刚刚添加了
pd.DataFrame(pivot\u table.to\u records())
以获得一个更适合我的问题的DataFrame对象。向您致敬W-B先生,我真的从您那里得到了灵感,看到您的熊猫知识,您现在是我的理想之一(说实话)++顺便说一句:)先生,我们怎样才能像你一样学到任何建议。@RavinderSingh13不断复习好的问答答案,所以,也不是捷径,只是多练习:-)