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网络编程学习笔记(五):socket的一些补充
Jun 09 Python
python开发中module模块用法实例分析
Nov 12 Python
深入理解python函数递归和生成器
Jun 06 Python
python自带的http模块详解
Nov 06 Python
Python新手入门最容易犯的错误总结
Apr 24 Python
Python3.5 创建文件的简单实例
Apr 26 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
Python socket模块实现的udp通信功能示例
Apr 10 Python
HTML的form表单和django的form表单
Jul 25 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
Nov 19 Python
Python3 中作为一等对象的函数解析
Dec 11 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 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错误日志 display_errors与log_errors的区别
2012/10/09 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
js获得网页背景色和字体色的方法
2014/03/21 Javascript
基于Javascript实现二级联动菜单效果
2016/03/04 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
jQuery模拟select实现下拉菜单功能
2016/06/20 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
2018/04/12 Javascript
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
2018/09/21 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
2019/12/25 jQuery
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
Python中%r和%s的详解及区别
2017/03/16 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
基于python实现百度翻译功能
2019/05/09 Python
Python利用Scrapy框架爬取豆瓣电影示例
2020/01/17 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
2020/12/01 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
两则小学生的自我评价分享
2013/11/14 职场文书
中专毕业生自荐信范文
2013/11/28 职场文书
房屋租赁意向书
2014/04/01 职场文书
十佳中学生事迹材料
2014/06/02 职场文书
个人房屋买卖协议书(范本)
2014/10/04 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
初中思想品德教学反思
2016/02/24 职场文书
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python