python - pandas groupby 对象到数据框

标签 python pandas dataframe

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/

相关文章:

python - 使用python打开draw.io文件

Python:如何设置 python-ldap 以忽略引用?

python - 如何将两个 Keras 模型的摘要数据写入各自的文件/文件夹?

python - 使用 Python 将某些属性从 xml 文件复制到另一个文件

python - 从 Pandas 中的 DataFrame 中删除列的范围

python - 映射两个数据帧并使用字典执行求和操作

python - 如何将DataFrame转换为xlsx文件而不保存它?

python - 将 Series 转换为 DataFrame

python - Pandas - 如何从数据框中获取索引值

python - 如何在 Pandas/Dask 中按具有可变 bin 的列离散化大数据帧