Pandas-数据透视表

文章目录

  • 一. Pandas透视表概述
    • 1. pivot_table函数介绍
  • 二. 栗子-零售会员数据分析
    • 1. 案例业务介绍
    • 2. 会员存量、增量分析
      • ① group by
      • ② 透视表
      • ③ 可视化

一. Pandas透视表概述

数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。所进行的计算与数据跟数据透视表中的排列有关。
之所以称为数据透视表,是因为可以动态地改变它们的版面布置,以便按照不同方式分析数据,也可以重新安排行号、列标和页字段。每一次改变版面布置时,数据透视表会立即按照新的布置重新计算数据。另外,如果原始数据发生更改,则可以更新数据透视表。
在使用Excel做数据分析时,透视表是很常用的功能,Pandas也提供了透视表功能,对应的API为pivot_table

1. pivot_table函数介绍

  • Pandas pivot_table函数介绍:pandas有两个pivot_table函数
    pandas.pivot_table
    pandas.DataFrame.pivot_table
    pandas.pivot_table 比 pandas.DataFrame.pivot_table 多了一个参数data,data就是一个dataframe,实际上这两个函数相同
  • pivot_table参数中最重要的四个参数 values,index,columns,aggfunc,下面通过案例介绍pivot_tabe的使用

二. 栗子-零售会员数据分析

1. 案例业务介绍

  • 业务背景介绍

    • 某女鞋连锁零售企业,当前业务以线下门店为主,线上销售为辅
    • 通过对会员的注册数据以及的分析,监控会员运营情况,为后续会员运营提供决策依据
    • 会员等级说明
      ① 白银: 注册(0)
      ② 黄金: 下单(1~3888)
      ③ 铂金: 3888~6888
      ④ 钻石: 6888以上
  • 数据分析要达成的目标

    • 描述性数据分析
    • 使用业务数据,分析出会员运营的基本情况
  • 案例中用到的数据
    ① 会员信息查询.xlsx
    ② 会员消费报表.xlsx
    ③ 门店信息表.xlsx
    ④ 全国销售订单数量表.xlsx

  • 分析会员运营的基本情况

    • 从量的角度分析会员运营情况:
      ① 整体会员运营情况(存量,增量)
      ② 不同渠道(线上,线下)的会员运营情况
      ③ 线下业务,拆解到不同的地区、门店会员运营情况
    • 从质的角度分析会员运营情况:
      ① 会销比
      ② 连带率
      ③ 复购率

2. 会员存量、增量分析

每月存量,增量是最基本的指标,通过会员数量考察会员运营情况
用到的数据:会员信息查询.xlsx

  • 加载数据

    import pandas as pd
    custom_info=pd.read_excel('data/会员信息查询.xlsx')
    custom_info.info()
    

    在这里插入图片描述

  • 会员信息查询

    custom_info.head()
    

    在这里插入图片描述

  • 需要按月统计注册的会员数量
    注册时间原始数据需要处理成年-月的形式

    # 给 会员信息表 添加年月列
    from datetime import datetime
    custom_info.loc[:,'注册年月'] = custom_info['注册时间'].apply(lambda x : x.strftime('%Y-%m'))
    custom_info[['会员卡号','会员等级','会员来源','注册时间','注册年月']].head()
    

    在这里插入图片描述

① group by

month_count = custom_info.groupby('注册年月')[['会员卡号']].count()
month_count.head()

在这里插入图片描述

month_count.columns = ['月增量']
month_count.head()

在这里插入图片描述

② 透视表

  • 用数据透视表实现相同功能:dataframe.pivot_table()
    index:行索引,传入原始数据的列名
    columns:列索引,传入原始数据的列名
    values: 要做聚合操作的列名
    aggfunc:聚合函数
custom_info.pivot_table(index='注册年月',values='会员卡号',aggfunc='count').head()

在这里插入图片描述

计算存量 cumsum 对某一列 做累积求和 1 1+2 1+2+3 1+2+3+4 …

#通过cumsum 对月增量做累积求和
month_count.loc[:,'存量'] = month_count['月增量'].cumsum()
month_count

在这里插入图片描述

③ 可视化

可视化,需要去除第一个月数据
第一个月数据是之前所有会员数量的累积(数据质量问题)

#Pandas版本>1.1
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei'] # 正常显示汉字
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号

month_count['月增量'].plot(figsize = (20,8),color='red',secondary_y = True)
month_count['存量'].plot.bar(figsize = (20,8),color='gray',xlabel = '年月',legend = True,ylabel = '存量')
plt.title("会员存量增量分析",fontsize=20)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/946566.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32-笔记26-WWDG窗口看门狗

一、简介 窗口看门狗用于监测单片机程序运行时效是否精准,主要检测软件异常,一般用于需要精准检测程序运行时间的场合。 窗口看门狗的本质是一个能产生系统复位信号和提前唤醒中断的6位计数器(有的地方说7位。其实都无所谓&#xff0…

【超好用远程工具】跨平台SSH工具WindTerm免费开源

WindTerm WindTerm概述免费开源、免费开源、免费开源下载、安装屏幕截图主窗口 (zsh):拆分视图:DigeWhite 主题: 基本设置连接到服务器SSH 连接Telnet 连接串口连接SFTP 连接使用多标签页 高级功能脚本和自动化会话管理…

开源存储详解-分布式存储与ceph

ceph体系结构 rados:reliable, autonomous, distributed object storage, rados rados采用c开发 对象存储 ceph严格意义讲只提供对象存储能力,ceph的块存储能力实际是基于对象存储库librados的rbd 对象存储特点 对象存储采用put/get/delete&#xf…

Postman[2] 入门——界面介绍

可参考官方 文档 Postman 导航 | Postman 官方帮助文档中文版Postman 拥有各种工具、视图和控件,帮助你管理 API 项目。本指南是对 Postman 主要界面区域的高级概述:https://postman.xiniushu.com/docs/getting-started/navigating-postman 1. Header&a…

牛客网最新1129道 Java 面试题及答案整理

前言 面试,跳槽,每天都在发生,而对程序员来说"金三银四"更是面试和跳槽的高峰期,跳槽,更是很常见的,对于每个人来说,跳槽的意义也各不相同,可能是一个人更向往一个更大的…

项目总结-ElasticSearch性能优化考虑点

项目总结-ElasticSearch性能优化考虑点 一、概述二、硬件层面优化2.1 ES硬件层面-内存优化2.2 ES硬件层面-磁盘优化2.3 ES硬件层面-CPU优化2.4 ES硬件层面-网络优化 三、系统层面优化3.1 ES系统层面-文件句柄数优化3.2 ES系统层面-swap优化 四、JVM层面优化4.1 JVM层面-JVM堆大…

Paperlib(论文管理工具)

Paperlib 是一个简单好用的论文管理工具。软件接入各学科数据库用于匹配论文元数据,逐步为每一个学科(例如计算机科学,物理学等)定制化数据库组合提高检索精度。尤其是精准的会议论文元数据检索能力。还可以管理你的论文&#xff…

静态时序分析:线负载模型的选择机制

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 线负载模型及其选择 线负载模型仅在Design Compiler线负载模式(非拓扑模式)下时使用,它估算了导线长度和扇出对网线的电阻、电容和面积的影响&#xff…

深入探索Java中的List集合

一、ArrayList集合 1.ArrayList集合的特点 2.ArrayList集合的一些方法 ①.add(Object element) 向列表的尾部添加指定的元素。 ②.size() 返回列表中的元素个数。 ③.get(int index) 返回列表中指定位置的元素,index从0开始。 ④.add(int index, Object elemen…

Spark生态圈

Spark 主要用于替代Hadoop中的 MapReduce 计算模型。存储依然可以使用 HDFS,但是中间结果可以存放在内存中;调度可以使用 Spark 内置的,也可以使用更成熟的调度系统 YARN 等。 Spark有完善的生态圈: Spark Core:实现了…

DMDRS部署:搭建DM8-DM8数据同步

一、部署要求 1.1 硬件要求 DMDRS服务描述源DMDRS 内存要求至少2GB的内存空间。推荐配置4GB及以上的内存空间。 源DMDRS对内存空间的需求主要与装载的并发数相关。当内存空间配置低于2GB时,可以调整装载的线程数来降低源DMDRS对内存空间的需求。 磁盘要求至少10GB…

Flutter:打包apk,详细图文介绍

困扰了一天,终于能正常打包apk安装了,记录下打包的流程。建议参考我这篇文章时,同时看下官网的构建说明。 官网构建并发布 Android 应用详情 1、AS创建Flutter项目 2、cmd执行命令 生成一个sunluyi.jks的文件,可以自行把sunluyi替…

【电源专题】LDO关键DC参数——效率

在讲到电源的效率方面,很多时候网上最经常看到的是“LDO的效率低,开关电源效率高,所以LDO需要更大的散热器来帮助耗散热能”。 比如如下所示为网上找到的一些总结,一般也是大家所熟知的: 是的,这描述在一定的使用条件下是正确对的,但并不完全对,因为不同的工作…

互联网直播点播平台EasyDSS无人机视频推拉流技术实现工地远程监控巡检直播

在建筑行业,施工现场的安全管理和实时监控一直是项目管理中的重点。随着技术的进步,无人机工地直播技术成为了一种新兴的解决方案,它不仅能够提高施工透明度,还能够加强现场安全管理。EasyDSS作为一种先进的流媒体技术平台&#x…

9.若依-自定义表单构建

表单构建工具,开发者通过图形界面和拖拽等操作,可以快速构建复杂的表单。 需求:做一些复杂的功能提交,涉及到多张标的数据提交。 自定义一个特殊表单页面 1.拖拉一个布局组件中行容器,然后在组件属性中设置表单删格在…

芊芊测字,免费测字,ai测字(1.0)

纯娱乐 芊芊测字网站:芊芊测字-ai免费测字

【Leecode】Leecode刷题之路第98天之验证二叉搜索树

题目出处 98-验证二叉搜索树-题目出处 题目描述 个人解法 思路: todo代码示例:(Java) todo复杂度分析 todo官方解法 98-验证二叉搜索树-官方解法 方法1:递归 思路: 代码示例:(J…

[Qt] 信号和槽(1) | 本质 | 使用 | 自定义

目录 一、信号和槽概述 二、本质 底层实现 1. 函数间的相互调用 2. 类成员中的特殊角色 三、使用 四. 自定义信号和槽 1. 基本语法 (1) 自定义信号函数书写规范 (2) 自定义槽函数书写规范 (3) 发送信号 (4) 示例 A. 示例一 B. 示例二 —— 老师说“上课了”&…

高效使用 cursor

设置 cursor 基础规则: 在 settings > General > Rules for AI 中设置自定义规则,以后 cursor 生成代码会基于该规则生成; 如果要编写复杂代码,可以在项目根目录创建一个 .cursorrules 文件,设置复杂的规则&…

【Kafka 消息队列深度解析与应用】

Kafka 消息队列深度解析与应用 一、Kafka 概述 (一)产生背景 Kafka 最初是由 LinkedIn 开发,旨在解决其内部海量数据的实时传输问题。在现代大数据环境下,企业需要处理海量的数据流入和流出,包括用户的行为数据、系…