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 Web框架Pylons中使用MongoDB的例子
Dec 03 Python
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
Jul 04 Python
Python守护进程用法实例分析
Jun 04 Python
总结Python编程中函数的使用要点
Mar 20 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
Jun 18 Python
python安装scipy的方法步骤
Jun 26 Python
Python OpenCV调用摄像头检测人脸并截图
Aug 20 Python
Django实现网页分页功能
Oct 31 Python
Django实现后台上传并显示图片功能
May 29 Python
Python如何定义有默认参数的函数
Aug 10 Python
Python爬虫入门教程02之笔趣阁小说爬取
Jan 24 Python
opencv检测动态物体的实现
Jul 21 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
一些常用的php函数
2006/12/06 PHP
linux iconv方法的使用
2011/10/01 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
PHP在线生成二维码代码(google api)
2013/06/03 PHP
十大使用PHP框架的理由
2015/09/26 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
PHP实现递归的三种方法
2020/07/04 PHP
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
angularjs实现与服务器交互分享
2014/06/24 Javascript
基于jQuery实现仿51job城市选择功能实例代码
2016/03/02 Javascript
jquery easyui validatebox remote的使用详解
2016/11/09 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
React之PureComponent的使用作用
2018/07/10 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
2019/11/19 Javascript
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
Python、Javascript中的闭包比较
2015/02/04 Python
ansible作为python模块库使用的方法实例
2017/01/17 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
pandas string转dataframe的方法
2018/04/11 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
Python多继承原理与用法示例
2018/08/23 Python
Python功能点实现:函数级/代码块级计时器
2019/01/02 Python
【HTML5】3D模型--百行代码实现旋转立体魔方实例
2016/12/16 HTML / CSS
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
公务员政审单位鉴定材料
2014/05/16 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
2016春季幼儿园小班开学寄语
2015/12/03 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android
纯html+css实现Element loading效果
2021/08/02 HTML / CSS