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写的ARP攻击代码实例
Jun 04 Python
python基础教程之Hello World!
Aug 29 Python
浅析使用Python操作文件
Jul 31 Python
Python入门必须知道的11个知识点
Mar 21 Python
django加载本地html的方法
May 27 Python
Pandas读取MySQL数据到DataFrame的方法
Jul 25 Python
Python利用递归实现文件的复制方法
Oct 27 Python
Python读取指定日期邮件的实例
Feb 01 Python
使用Python将字符串转换为格式化的日期时间字符串
Sep 01 Python
Python中flatten( ),matrix.A用法说明
Jul 05 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 Python
Python Django项目和应用的创建详解
Nov 27 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
ADODB类使用
2006/11/25 PHP
php md5下16位和32位的实现代码
2008/04/09 PHP
PHP版自动生成文章摘要
2008/07/23 PHP
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
thinkPHP下ueditor的使用方法详解
2015/12/26 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
优秀js开源框架-jQuery使用手册(1)
2007/03/10 Javascript
juqery 学习之四 筛选查找
2010/11/30 Javascript
jQuery实现带动画效果的二级下拉导航方法
2015/03/11 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
微信小游戏中three.js离屏画布的示例代码
2020/10/12 Javascript
Python中的多重装饰器
2015/04/11 Python
Windows和Linux下Python输出彩色文字的方法教程
2017/05/02 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
普罗米修斯教学反思
2014/02/06 职场文书
初中毕业生的自我评价
2014/03/03 职场文书
初中家长评语大全
2014/12/26 职场文书
在校生证明
2015/06/17 职场文书
《植物妈妈有办法》教学反思
2016/02/23 职场文书
多表查询、事务、DCL
2021/04/05 MySQL