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 初始化多维数组代码
Sep 06 Python
Python实现子类调用父类的方法
Nov 10 Python
python中sleep函数用法实例分析
Apr 29 Python
Python实现监控程序执行时间并将其写入日志的方法
Jun 30 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
Jul 25 Python
Python实现按中文排序的方法示例
Apr 25 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
May 24 Python
Pycharm之快速定位到某行快捷键的方法
Jan 20 Python
python使用Plotly绘图工具绘制柱状图
Apr 01 Python
Python 计算任意两向量之间的夹角方法
Jul 05 Python
详解python中*号的用法
Oct 21 Python
Python读写操作csv和excle文件代码实例
Mar 16 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独立Session数据库存储操作类分享
2014/06/11 PHP
php实现将Session写入数据库
2015/07/26 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
php中错误处理操作实例分析
2019/08/23 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
使用js实现数据格式化
2014/12/03 Javascript
jquery搜索框效果实现方法
2015/01/16 Javascript
javascript遇到html5的一些表单属性
2015/07/05 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
2017/04/20 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
vue-cli如何快速构建vue项目
2017/04/26 Javascript
vue v-model表单控件绑定详解
2017/05/17 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
2020/07/22 Javascript
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
详解duck typing鸭子类型程序设计与Python的实现示例
2016/06/03 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
Python实现JSON反序列化类对象的示例
2018/01/31 Python
pytorch构建网络模型的4种方法
2018/04/13 Python
python统计中文字符数量的两种方法
2019/01/31 Python
Python发送手机动态验证码代码实例
2020/02/28 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
2020/06/28 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
小学门卫岗位职责
2013/12/17 职场文书
销售行政专员职责
2014/01/03 职场文书
法律专业求职信
2014/05/24 职场文书
报效祖国演讲稿
2014/09/15 职场文书
python实现简单反弹球游戏
2021/04/12 Python
python开发人人对战的五子棋小游戏
2022/05/02 Python