Pandas系列(十五)stack和pivot实现数据透视
一般来说mysql
中存储的数据是面向列式的,这种格式非常善于新增数据或者删除数据,如果数据量比较大的话,还可以很方便地按行进行拆分,然后分片处理。
但是在数据分析时,我们更期望日期是行索引,评分是列索引,中间每个单元格的值是对应的数据。那如何将左边的数据变成右边的数据形式呢?
这就是将列示数据变成二维交叉形式,便于分析,这就叫做重塑或透视。
经过统计得到多维度指标数据
在实际的场景中经常需要指定多个维度,计算聚合后的指标。比如像统计电影评分数据集中每个月份的每种评分(1-5分
)被评分多少次。
读取数据,并利用pandas
中的to_datetime
方法将时间转换为日期的形式:
此时pdata
的格式变成datetime64[ns]
格式,转换成这种格式的好处在于可以直接使用pandas
的dt.month
得到月份,之后按照月份和打分等级进行多层groupby
,之后挑选出"UserID"
这一列,再调用聚合方法agg
,调用np.sum
进行计数。
对于上述这样的格式数据,想要去查看按月份,不同评分的次数趋势,是没法实现的,需要将数据变换成每个评分是一列(x
轴是月份,y
轴是评分,中间是数值这种二维形式)。
使用unstack实现数据二维透视
调用unstack()
方法可以实现:对比按照月份的不同评分的数量趋势:
从上图所示结果可以看出,大家在一月份对评分不感兴趣,在八月份评分最多。
unstack
和stack
是互逆操作:
使用pivot简化透视
调用pivot
方法直接指定x
,y
,和数值这三列可以直接实现数据的透视:
pivot方法相当于对df使用set_index创建分层索引,然后调用unstack。
Pandas系列(十五)stack和pivot实现数据透视相关推荐
- Pandas数据分析—使用stack和pivot实现数据透视
15.Pandas使用stack和pivot实现数据透视 文章目录 15.Pandas使用stack和pivot实现数据透视 前言 一.经过统计得到多维度指标数据 二.使用unstack实现数据的二维 ...
- 数学之美 系列十五 繁与简 自然语言处理的几位精英
数学之美 系列十五 繁与简 自然语言处理的几位精英 我在数学之美系列中一直强调的一个好方法就是简单.但是,事实上,自然语言处理中也有一些特例,比如有些学者将一个问题研究到极致,执著追求完善甚至可以说完 ...
- Power BI(十五)power pivot之Summarize函数
Power BI(十五)power pivot之Summarize函数 我们想统计订单金额的销售金额区间分布,想得到的效果图如下 如下图一笔订单会有多笔记录 传统的方法 生成数据透视表 复制到一个新表 ...
- ELK系列(十五)、Elasticsearch核心原理一篇全搞定
目录 Lucene 介绍 核心术语 如何理解倒排索引? 检索方式 分段存储 段合并策略 Elasticsearch 核心概念 节点类型 集群状态 3C和脑裂 1.共识性(Consensus) 2.并发 ...
- Reflex WMS入门系列十五:Reflex系统上对已经Confirm的Receipt能继续做收货么?
Reflex WMS入门系列十五:Reflex系统上对已经Confirm的Receipt能继续做收货么? 如下的Receipt已经完成了收货,并且已经confirm了, Cfm(confirm)栏位被 ...
- 网络云存储技术Windows server 2012 (项目十五 存储服务间的数据同步)
网络云存储技术Windows server 2012 (项目十五 存储服务间的数据同步) 目录 前言 一.项目背景 二. 项目实训题 前言 网络存储技术,是以互联网为载体实现数据的传输与存储,它采用面 ...
- WorldWind学习系列十五:如何切割影像和DEM数据及其在WW中的应用配置
原文转自:http://www.cnblogs.com/wuhenke/archive/2010/01/03/1638499.html WorldWind学习系列十四中我从代码上分析如何加载DEM数据 ...
- 聊聊MySQL的加锁规则《死磕MySQL系列 十五》
大家好,我是咔咔 不期速成,日拱一卒 本期来聊聊MySQL的加锁规则,知道这些规则后可以判断SQL语句的加锁范围,同时也可以写出更好的SQL语句,防止幻读问题的产生,在能力范围内最大程度的提升MySQ ...
- Oracle Golden Gate 系列十五 -- GG Trails 说明
一.Trails 说明 理论知识在系列一里有说明,这里在拿出来看一下: Oracle Golden Gate 系列一 -- GG 架构 说明 http://blog.csdn.net/tianleso ...
- 【web系列十五】Ubuntu系统部署Web项目
目录 写在前面 前端部署 安装nginx 编译vue工程 传输项目到服务器 修改nginx配置 修改启动用户 重启服务 打开网页 前端踩坑记录 无法使用getCurrentInstance.ctx.$ ...
最新文章
- VS2008中的“解决方案配置”和“解决方案平台”不见了(Release和Debug)的解决方法...
- HP880G3 安装RHEL6.5
- SQL基础操作_4_表的插入、更新、删除、合并操作
- 【Transformer】PoolFormer: MetaFormer is Actually What You Need for Vision
- Taro+react开发(32) Please use the ‘new‘ operator, this DOM object constructor cannot be called as a fu
- leetcode258. 各位相加(简单题,但是你不看答案想不出来)
- Django使用n内置模块发送HTML格式的邮件
- 怎么配置服务器php环境,配置PHP服务器环境步骤详解
- 诺基亚首款5G手机正式发布!还有Nokia 5310经典再现
- Java中调用FTP服务时inputStream获取一直为null
- 第18天:京东网页头部制作
- matlab 音乐传奇,matlab 如何打开wav声音文件
- SANYUKI:净化空气,顺便美颜?
- 傲梅备份服务器系统,傲梅轻松备份迁移系统
- Android常用控件-02
- mailgun php版本,如何使用mailgun php API仅向bcc发送邮件?
- 从头开始学Redisson--------限流器
- 美团数据治理一体化实践
- vbs脚本在服务器上虚拟按键,怎么用VBS代码实现模拟键盘按键?
- H.264视频监控项目