Python Pandas : Pivot table : aggfunc concatenate instead of np. 大小或 np.sum

标签 python pandas pivot-table

我在数据框中有一些条目,例如:

name, age, phonenumber
 A,10, Phone1
 A,10,Phone2
 B,21,PhoneB1
 B,21,PhoneB2
 C,23,PhoneC

这是我试图通过数据透视表实现的结果:

 name, age, phonenumbers, phonenocount
 A,10, "Phone1,Phone2" , 2
 B,21,  "PhoneB1,PhoneB2", 2
 C,23, "PhoneC" , 1

我正在尝试类似的东西:

pd.pivot_table(phonedf, index=['name','age','phonenumbers'], values=['phonenumbers'], aggfunc=np.size)

但是我希望将电话号码连接起来作为 aggfunc 的一部分。 有什么建议吗?

最佳答案

你可以在groupby之后使用agg函数:

df.groupby(['name', 'age'])['phonenumber'].\
    agg({'phonecount': pd.Series.nunique, 
         'phonenumber': lambda x: ','.join(x)
        }
       )

#               phonenumber  phonecount
# name  age     
#    A   10   Phone1,Phone2           2
#    B   21 PhoneB1,PhoneB2           2
#    C   23          PhoneC           1

或根据@root 和@Jon Clements 的更短版本:

df.groupby(['name', 'age'])['phonenumber'].\
   agg({'phonecount': 'nunique', 'phonenumber': ','.join})

关于Python Pandas : Pivot table : aggfunc concatenate instead of np. 大小或 np.sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38981885/

相关文章:

python - 如何将绘图添加到子图 matplotlib

Python - 将列值分组到类中

google-sheets - 如何使用 VLOOKUP 作为 Google 表格数据透视表中的计算字段?

python - 我们可以在数据透视表 pandas 中拥有多维值吗?

python - 访问私有(private)类变量

python - PTVS 或 visual studio 2012 express -desktop 中的类似内容

python - 使用线条时 Pyplot 不会绘制带孔的数据

python 将 RSA key (PEM 格式)转换为十六进制字符串

python - 如何制作用于电影评论数据集分类的数据框?

javascript - Web 数据透视表组件显示数据透视表数据区域中的文本