像Excel一样使用Python,pandas的pivot_table实现数据透视

更多文章可关注微信公众号:Excelwork

   习惯了使用Excel中的透视表功能,在使用Python处理数据时,我们也希望也能快速的进行排列、计算数据,以供我们完成快速观察、分析数据。在pandas库中,pivot_table函数可以帮助我们完成相关工作。

其语法如下:

pandas.pivot_tatle(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All', observed=False)

  • data为我们分析的数据集

  • values表示被统计的数据列(一列或多列)

  • index根据索引进行分组

  • columns表示按列字段进行分组

  • aggfunc表示对数据汇总使用的函数,默认取均值(可以是函数、函数列表、字典)

  • margins默认False,表示不输出汇总项,同Excel透视表的汇总项

数据样例如下:

像Excel一样使用Python,pandas的pivot_table实现数据透视_第1张图片

01 简单应用

    计算各销售区域平均营销费用,aggfunc参数按默认即可:

p=pd.pivot_table(data,values='营销费用:万',columns='销售区域')

结果如下:

02 按索引分组

    计算各销售区域平均营销费用,将columns参数改为index:

p2=pd.pivot_table(data,values='营销费用:万',index='销售区域')

结果如下:

像Excel一样使用Python,pandas的pivot_table实现数据透视_第2张图片

03 输出总计

    计算各销售区域平均营销费用,将columns参数改为index,增加margins参数,等于True:

p3=pd.pivot_table(data,values='营销费用:万',index='销售区域',margins=True)

结果如下:

像Excel一样使用Python,pandas的pivot_table实现数据透视_第3张图片

04 按字段列表分组

    计算各销售区域、各类别的平均营销费用:

p4=pd.pivot_table(data,values='营销费用:万',index=['销售区域','类别'])

结果如下:

像Excel一样使用Python,pandas的pivot_table实现数据透视_第4张图片

05 设置函数

    计算营销费用和销售费用总和,通过给aggfunc参数选择sum函数即可:

p5=pd.pivot_table(data,values=['营销费用:万','销售金额:万'],columns='销售区域',aggfunc=np.sum)

结果如下:

06 设置函数列表

    这里仅为举例子需要,比如对营销费用求和,对销售金额取均值,则需要给aggfunc传入函数列表:

p6=pd.pivot_table(data,values=['营销费用:万','销售金额:万'],index='销售区域',aggfunc=[np.sum,np.average])

结果如下:

像Excel一样使用Python,pandas的pivot_table实现数据透视_第5张图片

你可能感兴趣的:(Python,数据分析方法,数据处理,透视,pivot_table,pandas,分组计算,函数应用)