Python 熊猫(键,值)数据,移动键的重复实例';将值放入新列中

Python 熊猫(键,值)数据,移动键的重复实例';将值放入新列中,python,pandas,Python,Pandas,我有一个包含“NAME”和“VALUE”列的数据框: NAME VALUE apple 6 banana 3 cherry 7 apple 2 banana 5 cherry 3 我想将重复实例的值移动到一个新列,如下所示: NAME VALUE VALUE2 apple 6 2 banana 3 5 cherry 7 3 我以前在

我有一个包含“NAME”和“VALUE”列的数据框:

NAME       VALUE
apple        6
banana       3
cherry       7
apple        2
banana       5
cherry       3
我想将重复实例的值移动到一个新列,如下所示:

NAME       VALUE VALUE2
apple        6     2
banana       3     5
cherry       7     3
我以前在Python中通过迭代CSV行来实现这一点,并维护一个到目前为止读取的唯一名称列表,检查列表中是否存在名称……如果是,那么现在是我第二次看到它,因此我将其值添加到新的列VALUE2中。顺便说一句,这些行并不是按任何特定顺序排列的


在Pandas中有没有快速的方法可以做到这一点?

我们需要两个
set\u index
调用加上一个
unstack

df = df.set_index('NAME').set_index(
    df.groupby('NAME').cumcount(), append=True
).unstack()   

df.columns = df.columns.map('{0[0]}{0[1]}'.format)


使用
pivot

df.assign(key=df.groupby('NAME').cumcount()+1).pivot('NAME','key','VALUE').add_prefix('VALUE_')
Out[397]: 
key     VALUE_1  VALUE_2
NAME                    
apple         6        2
banana        3        5
cherry        7        3

我很好奇,你是如何知道如何“连锁”所有这些方法来实现这个结果的。它是基于您对熊猫的体验,还是有一个您不介意分享的综合参考资料?谢谢太棒了@coldspeed之前只回答了一个问题,但他们和温的解决方案都有效。非常感谢。@Anthony我的综合参考资料包含了我几个月来回答的所有问题:-)明白了,我还在学习如何有效地使用熊猫,我会查看你的个人资料。干杯@罗伯特,我建议你提出一个新问题。你能做到吗?
df.assign(key=df.groupby('NAME').cumcount()+1).pivot('NAME','key','VALUE').add_prefix('VALUE_')
Out[397]: 
key     VALUE_1  VALUE_2
NAME                    
apple         6        2
banana        3        5
cherry        7        3