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 __setattr__、 __getattr__、 __delattr__、__call__用法示例
Mar 06 Python
Python中字典创建、遍历、添加等实用操作技巧合集
Jun 02 Python
python编程羊车门问题代码示例
Oct 25 Python
python 对txt中每行内容进行批量替换的方法
Jul 11 Python
解决Python运行文件出现out of memory框的问题
Dec 03 Python
Python多进程fork()函数详解
Feb 22 Python
Python 合并多个TXT文件并统计词频的实现
Aug 23 Python
python文件读写代码实例
Oct 21 Python
Python序列对象与String类型内置方法详解
Oct 22 Python
tensorflow对图像进行拼接的例子
Feb 05 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
Feb 14 Python
Python爬虫基于lxml解决数据编码乱码问题
Jul 31 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
discuz的php防止sql注入函数
2011/01/17 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
php利用header函数下载各种文件
2016/08/24 PHP
jQuery在vs2008及js文件中的无智能提示的解决方法
2010/12/30 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
简单实现轮播图效果的实例
2016/07/15 Javascript
深入理解vue Render函数
2017/07/19 Javascript
vue数据控制视图源码解析
2018/03/28 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
vue实现学生信息管理系统
2020/05/30 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
Python文件去除注释的方法
2015/05/25 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
python实现随机梯度下降法
2020/03/24 Python
Django Form 实时从数据库中获取数据的操作方法
2019/07/25 Python
python实现贪吃蛇双人大战
2020/04/18 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
临床护士自荐信
2014/01/31 职场文书
社区清明节活动总结
2014/07/04 职场文书
个人求职信格式范文
2015/03/20 职场文书
感动中国何玥观后感
2015/06/02 职场文书
追悼词范文大全
2015/06/23 职场文书
大学升旗仪式主持词
2015/07/04 职场文书
资产移交协议书
2016/03/24 职场文书
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android
Java界面编程实现界面跳转
2022/06/16 Java/Android
python如何读取和存储dict()与.json格式文件
2022/06/25 Python