import pandas as pd
df1 = pd.DataFrame( {"name" : ["name1", "name1", "name2", "name3", "name3" , "name3"], "item" : ["item1", "item2", "item3", "item2", "item3", "item1"] } )
df2 = df1.groupby('name')['item']
在这个 groupby 对象中,我拥有每个名称的所有项目。我可以通过以下方式形象化这一点:
print(df2.apply(list))
并得到:
name
name1 [item1, item2]
name2 [item3]
name3 [item2, item3, item1]
但是,我想要实现的是这样的:
name itemA itemB itemC
name1 item1 item2 NaN
name2 item3 NaN NaN
name3 item2 item3 item1
非常感谢任何帮助。
最佳答案
在 df2 末尾添加 apply
pd.Series
df2.apply(list).apply(pd.Series)
Out[300]:
0 1 2
name
name1 item1 item2 NaN
name2 item3 NaN NaN
name3 item2 item3 item1
关于python - pandas groupby 对象到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48750236/