Excel对比Python之piovt_table(数据透视表)

本文对比了Excel和Python操作数据透视表的优缺点。以约5M、超十二万行的销售数据为例,Excel操作简单直观,但数据量大时会卡顿;Python可复制性强、处理大量数据流畅,但操作复杂抽象。此外,还介绍了Excel切片器可进行多维度数据对比展示。

Excel的数据透视表功能是平时工作非常熟悉的功能之一,也是非常强大而且基本上所有人都离不开的功能,今天来对比一下,在Excel和Python下分别对数据透视表进行操作各自的优点。

首先从网上获取一个数据,我下载了一个大小大约为5M,数据行超过十二万行的销售数据,图片是这样的

在这里插入图片描述
在这里插入图片描述

Excel篇

首先打开这个表格,有点卡顿,接下来,直接进行数据透视表的操作
在这里插入图片描述
会自动识别区域,然后点击在新的表格里面生成,
在这里插入图片描述
非常熟悉的界面,接下来将行列进行选择
在这里插入图片描述
在行列里面生成了我们想要的数据,非常简单而且直观。

那么在python中如何实现这个功能呢

python篇

首先打开python运行环境(推荐jupyter notebook)
然后读取这个表格

import numpy as np 
import pandas as pd    #导入相应的库
orders = pd.read_excel("/Users/mac/Downloads/023/Orders.xlsx")
print(orders.head(5))   #读取前五列

在这里插入图片描述
看到的数据和Excel是一样的
因为日期这一列我们需要对年份进行汇总,将日期进行处理

orders["year"] = pd.DatetimeIndex(orders.Date).year  #将年份单独出来为一列
print(orders.head(5))

增加一列year来显示年份,再打印前五行数据
在这里插入图片描述
在python中有一个piovt_table()方法,可以直接使用,方式是

orders_pivottable = orders.pivot_table(values="Total", columns="year", 
                         index="Category", aggfunc="sum", margins=True)
print(orders_pivottable)

要计算的值(values)是Total列,列(columns)是year,索引(index)是Category
聚合的方式的求和(sum)显示合计项
在这里插入图片描述
最后得到的这个表和透视表结果是一样的
还有另外一种办法就是手动生成透视表

groups = orders.groupby(["year", "Category"])\
.aggregate({"Product":"count", "Total":"sum"})
print(groups)

在这里插入图片描述
对year,Category进行分组聚合,Product进行计数,Total进行求和
相应的在EXCEL里面的结果是
在这里插入图片描述
结果都是一样的
Excel的优势在于简单直观明了,但是如果数据量太大,可能会比较卡
python的优势在于可复制性强,面对大量的数据运行流畅,但是不够直观,操作比较复杂、抽象。

Excel切片器篇

接下来介绍一个Excel强大的功能,切片器
具体的用法是,直接在Excel透视表里面插入图表
在这里插入图片描述
对需要的项目选择切片操作
在这里插入图片描述
可以根据需要对想要展示的数据进行多维度对比展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值