python 用pandas实现数据透视表功能


Posted in Python onDecember 21, 2020

透视表是一种可以对数据动态排布并且分类汇总的表格格式。对于熟练使用 excel 的伙伴来说,一定很是亲切!

pd.pivot_table() 语法:

pivot_table(data,  # DataFrame
      values=None,  # 值
      index=None,  # 分类汇总依据
      columns=None,  # 列
      aggfunc='mean',  # 聚合函数
      fill_value=None,  # 对缺失值的填充
      margins=False,  # 是否启用总计行/列
      dropna=True,  # 删除缺失
      margins_name='All'  # 总计行/列的名称
      )

1、销量数据的透视

python 用pandas实现数据透视表功能

1.1 读入数据

import os
import numpy as np
import pandas as pd

file_name = os.path.join(path, 'Excel_test.xls')
df = pd.read_excel(io=file_name,  # 工作簿路径
          sheetname='透视表',  # 工作表名称
          skiprows=1,  # 要忽略的行数
          parse_cols='A:D'  # 读入的列
         )
df

python 用pandas实现数据透视表功能

1.2 数据透视

# 透视数据
df_p = df.pivot_table(index='客户名称',  # 透视的行,分组依据
           values='销量',  # 值
           aggfunc='sum'  # 聚合函数
           )
# 对透视表进行降序排列
df_p = df_p.sort_values(by='销量',  # 排序依据
            ascending=False  # 是否升序排列
            )
# 设置数值格式
df_p = df_p.round({'销量': 0}).astype('int')

# 添加列
ks = df_p['销量']//100
df_p['重要程度'] = ['★'*k for k in ks]
df_p

python 用pandas实现数据透视表功能

1.3 重新设置图示表的索引

df_p['客户名称'] = df_p.index
df_p.set_index(keys=['重要程度', '客户名称'])

python 用pandas实现数据透视表功能

注:以上操作从理论和实践方面看都没什么问题,但模仿 excel 的痕迹浓重了些,更 python 的操作是用 groupby-applay 的方法。

2 用 分组聚合 实现数据透视

grouped = df.groupby(by='客户名称')
grouped['销量'].agg('sum')

python 用pandas实现数据透视表功能

2.1 实现目标格式的透视表

# 分类汇总
df_p = df.groupby(by='客户名称'  # 分类
         ).agg('sum'  # 汇总
           ).sort_values(by='销量', ascending=False  # 排序
                  ).round({'销量': 0}  # 设置精度
                     ).astype('int')  # 数据类型转换

# 添加列
ks = df_p['销量']//100
df_p['重要程度'] = ['★'*k for k in ks]
df_p['客户名称'] = df_p.index
# 层次索引
df_p.set_index(keys=['重要程度', '客户名称'])

python 用pandas实现数据透视表功能

软件信息:

python 用pandas实现数据透视表功能

以上就是python 用pandas实现数据透视表功能的详细内容,更多关于python pandas实现数据透视表的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python实现带错误处理功能的远程文件读取方法
Apr 29 Python
python使用wmi模块获取windows下的系统信息 监控系统
Oct 27 Python
django实现同一个ip十分钟内只能注册一次的实例
Nov 03 Python
django 将model转换为字典的方法示例
Oct 16 Python
OpenCV搞定腾讯滑块验证码的实现代码
May 18 Python
PyQt QListWidget修改列表项item的行高方法
Jun 20 Python
利用python numpy+matplotlib绘制股票k线图的方法
Jun 26 Python
Django框架视图层URL映射与反向解析实例分析
Jul 29 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
Oct 23 Python
Python 项目转化为so文件实例
Dec 23 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
Mar 03 Python
python 对图片进行简单的处理
Jun 23 Python
python 生成正态分布数据,并绘图和解析
Dec 21 #Python
python statsmodel的使用
Dec 21 #Python
Python 实现集合Set的示例
Dec 21 #Python
Python 实现二叉查找树的示例代码
Dec 21 #Python
如何利用Python matplotlib绘制雷达图
Dec 21 #Python
OpenCV+python实现膨胀和腐蚀的示例
Dec 21 #Python
python opencv肤色检测的实现示例
Dec 21 #Python
You might like
索尼SONY ICF-7600A(W)电路分析
2021/03/01 无线电
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
2015/11/24 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
2016/06/23 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
js实现无缝轮播图
2020/03/09 Javascript
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
利用Python实现网络测试的脚本分享
2017/05/26 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
对python当中不在本路径的py文件的引用详解
2018/12/15 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
Python 列表去重去除空字符的例子
2019/07/20 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
遗体告别仪式答谢词
2014/01/23 职场文书
责任书格式
2015/01/29 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
手机销售员岗位职责
2015/04/11 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
催款函怎么写
2015/06/24 职场文书
分享一些Java的常用工具
2021/06/11 Java/Android