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 相关文章推荐
微信 用脚本查看是否被微信好友删除
Oct 28 Python
python 通过xml获取测试节点和属性的实例
Mar 31 Python
解析Python的缩进规则的使用
Jan 16 Python
利用python开发app实战的方法
Jul 09 Python
python3中eval函数用法使用简介
Aug 02 Python
python每天定时运行某程序代码
Aug 16 Python
Python实现Restful API的例子
Aug 31 Python
django创建超级用户过程解析
Sep 18 Python
Python itertools.product方法代码实例
Mar 27 Python
为什么是 Python -m
Jun 19 Python
pycharm 实现复制一行的快捷键
Jan 15 Python
python如何将mat文件转为png
Jul 15 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变量引用的面试题
2010/08/08 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
2013/04/08 PHP
php筛选不存在的图片资源
2015/04/28 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
php源码的使用方法讲解
2019/09/26 PHP
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
微信小程序 自定义消息提示框
2017/08/06 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
详解React中setState回调函数
2018/06/14 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
python发布模块的步骤分享
2014/02/21 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
python 生成图形验证码的方法示例
2018/11/11 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
金融行业职业生涯规划范文
2014/01/17 职场文书
奠基仪式主持词
2014/03/20 职场文书
公务员考察材料
2014/12/23 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书