用Pandas做透视表
Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。
数据透视表(Pivot Table)是一种交互式的表格,可以进行某些计算,如求和与计数等。
用于对明细数据表进行各种分类汇总。
假如我们有以下数据:
数据少,便于人脑计算理解。
分别是id(销售),date(日期),goods(商品),sales(销量)
问题:统计每个人每天销售商品 A 和 B 的销量之和。
便于对比说明,先在WPS表格中实现了简单的数据透视表。
在Pandas官方文档的说明中,方法和参数如下:
pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')
参数解释:(如解释有误,请指出,谢谢!)
data,即要进行透视表的数据,格式为DataFrame
values,用来汇总计算的列,如这里的销量
index,用来分类的列,如这里的人员和商品,在透视表中表现为行的标题
column,用来分类的列,如这里的日期,在透视表中表现为列的标题
aggfunc,用来汇总计算的方法,比如求和,则为aggfunc='sum',默认为求平均数mean
fill_value,用来填充计算结果中的空值,比如填充为0,则为:fill_value=0
margins,用来当所有的行或者列相加,得到总数;默认不汇总计算
dropna,用来去掉汇总结果全为空的列,默认不去掉
margins_name,当margins为Ture,即计算汇总时,对应行列的标题名称,默认为:All
最常用和重要的参数是:index、values、columns、aggfunc
那么用Pandas进行上面要求的透视表计算,代码如下:
获取数据:
import pandas as pd
import numpy as np'''省略了从excel中读取数据的步骤,直接在这里生成数据'''df = pd.DataFrame({'id': ['张三','张三','李四','王五','张三','李四','李四','王五','张三','李四','张三','李四'],'date': ['2019-01-01', '2019-01-01', '2019-01-01','2019-01-01', '2019-01-02','2019-01-02', '2019-01-02', '2019-01-02', '2019-01-03', '2019-01-03', '2019-01-04', '2019-01-04'],'goods':['A','B','A','B','A','A','B','A','A','B','A','A'],'sales': [3000, 2000, 3000, 2000, 3000, 3000, 2000,3000, 3000, 2000,3000, 3000]},columns = ['id','date','goods','sales'])
df
运行结果如下:
透视表操作代码:
df1=pd.pivot_table(df, index=['id','goods'], columns='date', values='sales', aggfunc=[np.sum], fill_value=0, margins=True,margins_name='总计')
df1
运行结果如下:
保存为Excel:
df1.to_excel('test_pivot.xls')
运行结果如下:
参考资料:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.pivot_table.html
用Pandas做透视表相关推荐
- pandas pivot_table透视表、crosstab交叉表、aggfunc函数详解及实战
pandas pivot_table透视表.crosstab交叉表详解及实战 pivot_table透视表.crosstab交叉表的本质是一样的,都是通过对表格的透视或者重新排布.人为设置信息的行和列 ...
- Pandas简明教程:八、Pandas数据透视表
透视表(pivot)是由微软发明的一个概念,1993年微软注册了PivotTable这一商标,而他们又在2020年正式撤销了注册. 关于透视表的话题随便搜搜就是一大堆,而有些地方可能都吹得很神了.透视 ...
- NO.111 禅道导出数据做透视表,让你轻松做年终工作总结。
为什么80%的码农都做不了架构师?>>> 年底了,很多公司都要求大家写年终工作总结.估计很多童鞋就开始犯愁了.年年写,来来去去总是那些模式,自己都觉得没意思. 今天,教大家一招 ...
- pandas 数据透视表
pandas 数据透视表及逆透视 主要参数说明 pd.pivot_table(df,index= [] ,columns= [] ,values = [] , aggfunc={"Quant ...
- 对比Excel,学习pandas数据透视表
Excel中做数据透视表 ① 选中整个数据源: ② 依次点击"插入"-"数据透视表" ③ 选择在Excel中的哪个位置,插入数据透视表 ④ 然后根据实际需求,从 ...
- Pandas中透视表和交叉表
文章目录 一. 什么是透视表? 二.为什么要使用pivot_table? 三.pivot_table api认识 四.如何使用pivot_table? 4.1 读取数据 4.2 使用index参数 4 ...
- Pandas数据分析15——pandas数据透视表和交叉表
参考书目:<深入浅出Pandas:利用Python进行数据处理与分析> pandas对数据框也可以像excel一样进行数据透视表整合之类的操作.主要是针对分类数据进行操作,还可以计算数值型 ...
- 学习pandas数据透视表
1.excel中做数据透视表 1)步骤如下 ① 选中整个数据源: ② 依次点击"插入"-"数据透视表" ③ 选择在Excel中的哪个位置,插入数据透视表 ④ 然 ...
- 用python做透视表_用Python实现数据的透视表的方法
用Python实现数据的透视表的方法 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: 用Python实现数据的透视表的方法.txt ] (友情提示:右键点上行tx ...
- python数据透视、有的value不能同时输出_python – Pandas数据透视表ValueError:索引包含重复的条目,无法重新整形...
我有一个如下所示的数据帧(前3行): Sample_Name Sample_ID Sample_Type IS Component_Name IS_Name Component_Group_Name ...
最新文章
- centos6.9安装oracle10,2018-10-09 centos6.9 安装cx_Oracle
- 经典面试题:在这个场景下,你怎么进行性能调优?
- Python基础综合练习
- Linux内存初始化(C语言部分)
- 快速排序算法的简短描述
- 【渝粤教育】国家开放大学2018年春季 0014-21T秘书学(一) 参考试题
- 42 github 开源代码 ——README.md语法/相关操作等
- 城市能源管理系统、实时监测、运行监测、负荷效应、预警管理、设备管理、设备入库、设备安装、设备检修、设备报废、设备查询、控制策略、系统集成、HTML/CSS/Bootstrap/jQuery/JS
- python如何将数据生成excel_python的将数据生成excel功能
- (day 53 - 动态规划 ) 剑指 Offer 63. 股票的最大利润
- C#访问MySQL数据库帮助类
- 固态硬盘(samsung SSD 850 pro)相关问题
- 不靠加速器 路由配置也可扭转网游战局
- 基于DAC8563模块的低速模拟振镜驱动,实现直线插补,点到点划线
- 睡眠监测目前的原理分析
- jquery 表单验证插件
- python3之微信文章爬虫
- 利用H5SVG实现线性动画效果
- 华为 小米 OPPO 手机type-c快充接口 会用到什么胶水?
- NFT新范式,OKALEIDO创新NFT聚合交易生态