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基于高斯消元法计算线性方程组示例
Jan 17 Python
Python实现简易版的Web服务器(推荐)
Jan 29 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
Python面向对象类继承和组合实例分析
May 28 Python
浅谈Python中eval的强大与危害
Mar 13 Python
网易有道2017内推编程题 洗牌(python)
Jun 19 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
Aug 06 Python
django自定义非主键自增字段类型详解(auto increment field)
Mar 30 Python
python和JavaScript哪个容易上手
Jun 23 Python
python爬虫请求头设置代码
Jul 28 Python
Python lambda表达式原理及用法解析
Aug 18 Python
python中pivot()函数基础知识点
Jan 03 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
留言板翻页的实现详解
2006/10/09 PHP
浅析PHP水印技术
2007/02/14 PHP
PHP实现用户认证及管理完全源码
2007/03/11 PHP
php.ini中date.timezone设置分析
2011/07/29 PHP
PHPThumb PHP 图片缩略图库
2012/03/11 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
PHP+Redis开发的书签案例实战详解
2019/07/09 PHP
PHP设计模式之命令模式示例详解
2020/12/20 PHP
javascript不同页面传值的改进版
2008/09/30 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
JS中BOM相关知识点总结(必看篇)
2016/11/22 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
2017/07/10 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
vuex 项目结构目录及一些简单配置介绍
2018/04/08 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
2019/11/21 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
Django自定义插件实现网站登录验证码功能
2017/04/19 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
详解django.contirb.auth-认证
2018/07/16 Python
python简单验证码识别的实现方法
2019/05/10 Python
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
盛大笔试题
2016/11/05 面试题
法定授权委托证明书
2015/06/18 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技