数据透视:Excel数据透视和Python数据透视
©作者 | leo
早于90年代初,数据透视的概念就被提出,主要的应用场景是处理大量数据的交互式汇总查询,它实现了行或列的移动,使得行可以移到列上,列移到行上,从而根据使用者的诉求取对关注的数据子集进行排序,分组,筛选,汇总等等,它以强大而灵活的数据查询方式被广泛推广开来,人们可以自定义计算公式,展开或者折叠需要关注的结果数据集,查看数据摘要信息。
今天我们讨论的是两个均有数据透视功能的工具,也是时下最为常见和流行的数据分析工具:Excel和Python,希望能够通过本文让您加深对数据透视的理解和使用。文中也会在合适的地方讲二者进行对比,希望能对读者有一定启发。
首先我们来介绍下Excel中的数据透视表的使用方法。
01 Excel数据透视简介
数据源的基本要求:
Excel使用的数据源是有一定的格式要求的,并非任何数据都能够直接进行数据透视,这点来说,python对数据的选择则更为灵活。
● 数据源首行需要是标题行
如果没有标题行,则在后面的字段汇总就会产生问题,因此这是首要条件。
● 不能包含空行和空列
因为透视表的数据截取是以空行和空列作为停止的条件的。
● 不能包含空的单元格
数据透视主要是对数值型进行汇总、文本型计数,空的单元格会对汇总结果产生影响。
● 不能包含合并单元格
合并的单元格会导致读取失败。
● 不能包含同类字段
02 数据透视表使用方法
创建数据透视表
下面介绍如何快速建立数据透视表,首先通过ctrl+shift+⬇和ctrl+shift+向左箭头选中数据区域,然后单击菜单栏下的插入-数据透视表,在弹出框中选择透视表的位置是在新的工作表还是现有工作表的某个区域,位置栏旁边的箭头用于设定区域。
新生成的透视表允许我们对不同的字段进行各种数学汇总,只需要将不同的维度字段拖入对应的栏目中即可,比如查看不同月份、季度的销量、销售额情况可以将销售日期字段拖入行中,将销售数量拖入值中,并选择加和汇总。
数据刷新
Excel数据透视表使用的是缓存数据,当数据源有更新时,并不会自动刷新数据,需要手动刷新数据源,根据改动类型分为:数据变动,数据区域变动。
数据变动
指的是在现有的数据区域内,对数据做了改动,需要在透视表上面进行更新。可以通过手动刷新,可以通过点击透视表选项下的刷新按钮自动更新数据。
数据区域变动
指的是有新的数据添加,此时数据区域发生了变化,无法通过手动刷新数据来实现数据的更新。此时,可以通过刷新按钮旁边的【更改数据源】选项,重新选择数据区域来实现。
数据分组
数值和文本分组
如果我们想将不同年龄段的人群进行分组,不同姓氏的人群分组,这时就需要应用到数值和文本分组了。
如下图,属于文本型分组,需要选择需要的字段,连续字段直接圈选,非连续字段可以使用ctrl键。
对于数值型分组,由于数值是有规律的,因此选择创建组之后会自动进行分组。
日期分组
在透视表上面右击日期项,根据需要的时间频度进行选择。
常用的值显示方式
Excel透视表提供值显示方式,可以满足多种不同的数据对比和数据构成计算分析。
下面介绍常用的几种计算方式:
● 总计的百分比
每个数据占所在行列总和的百分比
● 行/列总百分比
每个数据占所在行或列所有项总和的百分比
● 百分比
根据某个字段完成百分比对比计算
● 父行汇总百分比
每个数据项占该列父级项总和的百分比
● 父级汇总百分比
每个数据项占该列和行父级项总和的百分比
● 差异百分比
每个字段与固定被选取字段的差百分比
03 切片的使用
切片器是Excel2010引入的新功能,它提供了更为强大的数据交互能力,比起单纯的数据筛选,使用更加流畅和灵活。
多表联动筛选
使用前提
Excel2013版本以上,使用同一份数据源建立的透视表才能进行多表联动。
使用方法
在透视表选项卡下选择插入切片器,然后选择要呈现的字段,切片器会自动将数据加载到切片窗口。
设置多表联动,右击切片器窗口,选择报表链接,就可以选择切片器关联的透视表了。
2.1 Python数据透视功能简介
Python的数据透视功能主要通过pivot_table()函数实现,接下来主要介绍它的相关使用。
pivot_table()函数参数介绍
在python中,主要通过pandas里面pivot_table()函数来进行数据透视,让我们首先了解下该方法的主要参数功能:
完整的pivot_table()表达式如下
pd.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')
● data
数据源dataframe对象
● index
指定分组的列,相当于行索引
pt = pd.pivot_table(p_data,index=['销售日期'])
● values
需要进行聚合运算的数值字段
pt = pd.pivot_table(p_data,index=['销售日期'],values=['销售数量'])
● aggfunc
指定聚合方法,默认求和,既可以使用字典的形式对不同字段进行不同的运算方法,也可以对同个字段进行不同的运算方法,同时也可以使用自定义函数来作为聚合方法运算。
pt = pd.pivot_table(p_data,index=['销售日期'],values=['销售数量'],aggfunc=[np.mean,len])
● columns
添加列索引,更细化的展示数据的汇总情况
pt = pd.pivot_table(p_data,index=['销售日期'],columns=['产品名称'], values=['销售数量'],aggfunc=[np.mean,len])
● fill_value
用于填充缺失值
pt = pd.pivot_table(p_data,index=['销售日期'],fill_value=0,columns=['产品名称'], values=['销售数量'],aggfunc=[np.mean,len])
通过了解pivot_table()函数的基本参数,可以发现,通过index和columns参数,能够自由的选取不同字段进行Excel当中的行列互换汇总计算,比如百分比的计算,我们可以通过自定义函数,添加到aggfunc参数中,应用到所有相关字段。
高级透视功能
一旦通过上述设置得到透视数据后,就可以使用高级透视功能进行数据过滤。
比如想查看Manger字段是Debra Henley下的所有数据
pt.query('Manager == ["Debra Henley"]')
筛选status(状态)是"pending"和"won"的数据信息
pt.query('Status == ["pending","won"]')
通过以上展示,可以发现Excel在处理数据透视方便具有更好的交互性和数据呈现能力,缺点是数据的汇总相对比较固定,不具备更多的灵活度,因此对于数据分析并不复杂的应用场景,选择Excel比较合适。
而Python在处理数据透视方面,计算能力和字段的灵活组合方面远远胜于Excel,因此如果需要复杂的数据透视功能,可以通过python来实现。
此外,python相较于Excel透视更为强大的一点是python的时间处理功能,也就是时间序列的处理,对于金融从业者来说,python的时间序列处理能够更为精细化的展示数据透视结果,限于篇幅不做进一步展开。
数据透视:Excel数据透视和Python数据透视相关推荐
- xlsx表格怎么筛选重复数据_excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法...
excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法,最近到了季度汇报的时候,掌握一手excel技能在此刻显得多么重要,为了是你的excel看起来更高大上,今天教大家设置 ...
- Jsoup:使用Java将爬虫得到的数据写入Excel,Jsoup得到的数据进行持久化,爬虫数据保存到本地Excel中
Jsoup:使用Java将爬虫得到的数据写入Excel,Jsoup得到的数据进行持久化,爬虫数据保存到本地Excel中 一.资源 EasyExcel使用教程 Jsoup爬虫教程 二.代码 xml依赖 ...
- python 调用不存在的方法 统一处理_提取不重复数据在Excel、SQL与Python中的处理方法...
村长今天跟大家简单分享一下如何在Excel.SQL和Python中用不同的方法提取不重复值(数据去重). 一.Excel 1.1.函数法(数组公式) 函数公式:=IFERROR(INDEX(A:A,S ...
- matlab 多个表数据相加,Excel合并计算完成多表格数据汇总求和
Excel合并计算完成多表格数据汇总求和 多表格数据汇总可以使用透视表,使用函数,今天读书屋OFFICE网陈飞老师分享一个通过合并计算完成多表格数据汇总方法,合并计算分为两种情况,一种情况是:多个表格 ...
- python数据科学手册_小白入门Python数据科学
前言 本文讲解了从零开始学习Python数据科学的全过程,涵盖各种工具和方法 你将会学习到如何使用python做基本的数据分析 你还可以了解机器学习算法的原理和使用 说明 先说一段题外话.我是一名数据 ...
- python数据可视化的特点_6 种 Python 数据可视化工具
原标题:6 种 Python 数据可视化工具 英文:Chris Moffitt,编译:伯乐在线/李加庆 简介 在 Python 中,将数据可视化有多种选择,正是因为这种多样性,何时选用何种方案才变得极 ...
- 财务大数据比赛有python吗-大数据工作内容有哪些?老男孩Python数据培训
数据,想必对于大家来说都是非常熟悉的东西,也是我们生活之中不能够缺少的,数据的出现给我们带来了很大的帮助,但是说到大数据,可能很多人都存在疑问,是什么呢?大数据开发主要做什么? 根据大数据人才报告来说 ...
- python数据科学实践指南_《Python数据科学实践指南》——导读-阿里云开发者社区...
前 言 为什么要写这本书 我接触大数据技术的时间算是比较早的,四五年前当大数据这个词火遍互联网的时候,我就已经在实验室里学习编程及算法的知识.那个时候我一心想要做学术,每天阅读大量的英文文献,主要兴趣 ...
- python抓取数据时失败_爬取数据缺失的补坑,Python数据爬取的坑坑洼洼如何铲平...
渣渣业余选手讲解,关于爬取数据缺失的补坑,一点点关于Python数据爬取的坑坑洼洼如何铲平,个人的一些心得体会,还有结合实例的数据缺失的补全,几点参考,仅供观赏,如有雷同,那肯定是我抄袭的! 在使用P ...
- excel数据平均分配给多人_excel表格 怎样均分数据-用Excel怎么才能将组数据平均分配给几个人...
怎样在Excel表格中求平均数? 在excel中怎样自动生成各班各科的平均成绩 可以调用Excel函数库的函实现. 步骤如下: 1. 在单元格内点击上公式-平均值". 2. 点击需要参与 ...
最新文章
- 集合list set Map问题
- poj 3207 Ikki's Story IV - Panda's Trick(2-SAT)
- 【转载】计算机视觉~VGG网络
- [crypto]-05-转载:PKCS #1 RSA Encryption Version 1.5介绍
- 用纸筒做机器人_幼儿园简单手工:纸盒子回收利用做机器人(步骤图解)
- 结构方程模型-调节(干扰)效应检验(一)
- PL/SQL Developer使用笔记
- 多进程/多线程的比较
- SwiftyJSON
- Mac idea激活jrebel
- 内核 BUG_ON 以及WARN_ON 用法作用
- python多条件求和_python – Numpy:条件求和
- 计算机自带的加密,加密,详细教您如何用自带Bitlocker来为电脑磁盘加密
- ISCC2021—小明的宠物兔、表情包
- python安装random_如何安装python randon
- 统计元音字母——输入一个字符串,统计处其中元音字母的数量。更复杂点的话统计出每个元音字母的数量。
- php emoji 保存 显示,PHP开发中涉及到emoji表情的几种处理方法
- 雀友腾讯跨界联合 北京打造全球顶级麻将锦标赛
- 大文件切片上传、视频切片上传转m3u8播放
- SCS【8】单细胞转录组之筛选标记基因 (Monocle 3)