15.Pandas使用stack和pivot实现数据透视

文章目录

  • 15.Pandas使用stack和pivot实现数据透视
  • 前言
  • 一、经过统计得到多维度指标数据
  • 二、使用unstack实现数据的二维透视
  • 三、使用pivot简化透视
  • 四、stack、unstack、pivot的语法
    • 1.stack
    • 2.unstack
    • 3.pivot
  • 总结

前言

不知道怎么搞的,我放在CSDN上免费下载的资源,平台竟然给附加了积分的要求。我用百度网盘分享一下:
链接:https://pan.baidu.com/s/1njABjnXK9iIapwpdv9CaCA
提取码:6666

笔者最近正在学习Pandas数据分析,将自己的学习笔记做成一套系列文章。本节主要记录Pandas中使用stack和pivot实现数据透视。


  1. 经过统计得到多维度指标数据
  2. 使用unstack实现数据二维透视
  3. 使用pivot简化透视
  4. stack、unstack、pivot的语法

一、经过统计得到多维度指标数据

非常场景的统计场景,指定多个维度,计算聚合后的指标
实例:统计得到“电影评分数据集”,每个月份的每个分数被评分多少次:(月份、分数1-5、次数)

import pandas as pd
import numpy as np
%matplotlib inline
df=pd.read_csv("./datas/ml-1m/ratings.dat",sep="::",engine='python',names='UserID::MovieID::Rating::Timestamp'.split("::"),header=None
)
df.head()#将时间戳转换为具体的时间
df['padate']=pd.to_datetime(df["Timestamp"],unit='s')
df.head()df.dtypes#实现数据统计
# 对于这样格式的数据,我想查看按月份,不同评分的次数趋势,是没有办法进行实现的,需要将数据转换为每个评分是一列才可以实现。
df_group=df.groupby([df["padate"].dt.month,"Rating"])["UserID"].agg(pv=np.sum)
df_group.head(20)



二、使用unstack实现数据的二维透视

目的: 想要画图对比按照月份的不同评分的数量趋势

df_stack=df_group.unstack()
df_stackdf_stack.plot()#unstack和stack是互逆的操作
df_stack.stack().head(20)


三、使用pivot简化透视

pivot方法相当于对df使用set_index创建分层索引,然后调用unstack

df_group.head(20)df_reset=df_group.reset_index()
df_reset.head()df_pivot=df_reset.pivot("padate","Rating","pv")
df_pivot.head()df_pivot.plot()



四、stack、unstack、pivot的语法

1.stack

stack:DataFrame.stack(level=-1,dropna=True),将column变成index,类似把横放的书籍变成竖放
level=-1代表多层索引的最内层,可以通过==0,1,2指定多层索引的对应层

2.unstack

unstack:DataFrame.unstack(level=-1,fill_value=None),将index变成column,类似把竖放的书变成横放

3.pivot

pivot:DataFrame.pivot(index=None,columns=None,values=None),指定index,columns,values实现二维透视

总结

这就是pandas中使用stack和pivot实现数据透视的基本用法了,希望可以帮助到你。

Pandas数据分析—使用stack和pivot实现数据透视相关推荐

  1. Python数据分析——Pandas基础:dt.datetime与pivot_table()数据透视表

    系列文章目录 Chapter 1:创建与探索DF.排序.子集化:Python数据分析--Pandas基础入门+代码(一) Chapter 2:聚合函数,groupby,统计分析:Python数据分析- ...

  2. excel自动排班表_Excel数据分析-如何制作自动更新的数据透视表

    数据透视表是我们工作中一个非常强大的数据汇总分析功能,大家一定会遇到这样的问题,就是数据源如果每天或者经常性需要更新的话,那么我们的数据透视表就要在每次更新后重新选择数据源,如何能让数据源自动更新呢? ...

  3. Excel数据分析(七)第六章数据透视表

    1.原始数据的处理方法 (1)所有数据都要汇总在一张表当中 (2)只有一维表才能建立数据透视表(一维表是指表的第一行是字段名,下面是对应的数据) (3)表中不能有空值,如果没有数据建议填入0. (4) ...

  4. 刷新table数据_经典 - 一文轻松看懂数据透视表

    [导语]也许大多数人都知道 Excel 中的数据透视表,也体会到了它的强大功能,那么 Pandas 也提供了一个类似的功能,也就是pivot_table.因为考虑到直接学 pivot_table 会有 ...

  5. 从一张表里选择一列加入到另一张表_【附中奖名单】| Excel妙招,数据透视表也能轻松做好排序!...

    在进入本篇干货分享之前,先公示最近留言评论的获奖名单. 获奖名单及奖品公示 2019年9月27日,本公众号发布了<精进Excel I 基础表设计的基本原则>,根据文章里的活动说明,我们对留 ...

  6. vba九九乘法表代码_VBA代码模块化--数据透视表

    本周工作中,用到了数据透视表的操作,这里汇总一下,学习途径来自网络,学习成果我也乐于分享一二~,代码整理为模块,供大家举一反三,可以套用. ① 创建数据透视表,及基本设置 先展示数据源和结果吧: 对应 ...

  7. pivottablejs|在Jupyter 中尽情使用数据透视表!

    作者 | 刘早起早起 来源 | 早起Python(ID:zaoqi-python) 头图 |  CSDN 下载自东方IC 大家好,在之前的很多介绍 pandas 与 Excel 的文章中,我们说过「数 ...

  8. 【Excel 2013 数据透视表 学习】一、创建数据透视表

    1 数据透视表 是Excel中数据处理分析工具. 用途: 1. 快速分类汇总.比较大量数据. 2. 快速变化统计分析维度查看统计结果. 数据透视表不仅综合了数据排序.筛选.组合及分类汇总等数据分析方法 ...

  9. vue.js组件数据绑定_Vue.js的增强的数据透视表组件

    vue.js组件数据绑定 VUE数据透视表加 (vue-pivot-table-plus) A customized vue component for pivot table. 数据透视表的定制vu ...

最新文章

  1. Usage and Idioms——Categories
  2. Oracle命令(一):Oracle登录命令
  3. 字符设备驱动笔记——中断方式按键驱动之linux异常处理结构(四)
  4. 网络流24题 魔术球问题
  5. Serverless 落地实践
  6. Oracle中通过substr和instr实现截取指定字符之间的字符串:
  7. ajax nginx 转发 sessionid_「查缺补漏」巩固你的Nginx知识体系
  8. 51单片机点亮数码管
  9. UML--类之间的五种关系
  10. pyspider—爬取下载图片
  11. Python图片爬虫
  12. mysql里的char和varchar
  13. 解构蓝牙地址以及蓝牙MAC地址查询
  14. ABAP 语法备忘 刘欣
  15. 电路设计中如何解决电压跌落
  16. 机械转行程序员怎么样?
  17. A/B Problem(大数)
  18. 【数据分析师-数据分析项目案例二】泰坦尼克号生还者预测案例
  19. uniapp项目中引用iconfont图标,实现信号强度图标展示(离线使用)
  20. 下载 JDK LTS 版本安装

热门文章

  1. win10禁用驱动程序强制签名_Mastercam2017软件在Win10系统上安装方法 同样适合其它版本...
  2. 面试官灵魂拷问:为什么代码规范要求 SQL 语句不要过多的 join?
  3. 信创产业国产化替代的机遇和挑战
  4. day34 文件上传黑白盒审计逻辑中间件外部引用
  5. 如何使用自助式商业智能 (BI) 避免组织中的数据孤岛
  6. 来CCF HPC China 2019走一走,领略别样的算力之美
  7. 幽灵交易策略_期货软件TB系统源代码解:幽灵交易者交易策略
  8. 关于《One day》
  9. Day One指定日期新建日记
  10. 如何利用好Q群的撤回功能制作自动撤回想要撤回的信息