温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么使用Python+Pandas实现数据透视表

发布时间:2022-06-17 09:43:40 来源:亿速云 阅读:189 作者:iii 栏目:开发技术

这篇文章主要介绍了怎么使用Python+Pandas实现数据透视表的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python+Pandas实现数据透视表文章都会有所收获,下面我们一起来看看吧。

导入示例数据

首先导入演示的数据集。

import pandas as pd

df = pd.read_csv('销售目标.csv')
df.head()

怎么使用Python+Pandas实现数据透视表

参数说明

怎么使用Python+Pandas实现数据透视表

主要参数:

  • data:待操作的 DataFrame

  • values:被聚合操作的列,可选项

  • index:行分组键,作为结果 DataFrame 的行索引

  • columns:列分组键,作为结果 DataFrame 的列索引

  • aggfunc:聚合函数/函数列表,默认 numpy.mean 这里要注意如果 aggfunc 中存在函数列表,则返回的 DataFrame 中会显示函数名称

  • fill_value:默认 None,可设定缺省值

  • dropna:默认 True,如果列的所有值都是 NaN,将被删除;False 则保留

  • margins:默认 False,设置为 True 可以添加行/列的总计

  • margins_name:默认显示 'ALL',当 margins = True 时,可以设定 margins  行/列的名称

常用操作

使用pivot_table时必须要指定index,因为计算时要根据index进行聚合。

pd.pivot_table(df.head(20),
               index='订单日期',
               aggfunc=np.sum)

怎么使用Python+Pandas实现数据透视表

通过指定value来选择被聚合的列。

pd.pivot_table(df.head(20),
               values='销售目标',
               index='订单日期',
               aggfunc=np.sum)

怎么使用Python+Pandas实现数据透视表

当只指定index进行聚合时,其实用groupby可以实现同样的效果。

df.head(20).groupby(['订单日期'])['销售目标'].sum().reset_index()

添加columns参数,对列分组。

pd.pivot_table(df.head(10),
               values='销售目标',
               index=['订单日期', '类别'],
               columns='细分',
               aggfunc=np.sum)

怎么使用Python+Pandas实现数据透视表

对于上面结果中的空值,使用fill_value参数统一填充为0

pd.pivot_table(df.head(10),
               values='销售目标',
               index=['订单日期', '类别'],
               columns=['细分'],
               aggfunc=np.sum,
               fill_value=0)

怎么使用Python+Pandas实现数据透视表

现在按年份来统计销售数据,注意此时的aggfunc参数,当参数值包含列表时,在结果DataFrame中就会显示函数名称。

pd.pivot_table(df,
               values='销售目标',
               index=['年份', '类别'],
               columns='细分',
               aggfunc=[np.sum])

怎么使用Python+Pandas实现数据透视表

如果需要添加合计列,只需指定margins=True即可,同时根据需要指定合计名称。

pd.pivot_table(df,
               values='销售目标',
               index=['年份', '类别'],
               columns='细分',
               aggfunc=np.sum,
               margins=True,
              margins_name='合计')

怎么使用Python+Pandas实现数据透视表

当然与groupby类似,对于计算函数我们可以同时指定多种方式。

pd.pivot_table(df,
               values='销售目标',
               index=['年份', '类别'],
               columns=['细分'],
               aggfunc={'销售目标': [max, np.sum]},
               fill_value=0)

怎么使用Python+Pandas实现数据透视表

关于“怎么使用Python+Pandas实现数据透视表”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“怎么使用Python+Pandas实现数据透视表”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI