繁体   English   中英

大熊猫 groupby 对象到数据框

[英]pandas groupby object to 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

文的回答中添加了列名

>>> df3 = df2.apply(list).apply(pd.Series)
>>> df3.columns = ['itemA', 'itemB', 'itemC']
# df3 = df3.rename(columns={0: 'itemA', 1: 'itemB', 2: 'itemC'})
>>> df3
       itemA  itemB  itemC
name                      
name1  item1  item2    NaN
name2  item3    NaN    NaN
name3  item2  item3  item1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM