Pandas透视表及应用(一)

简介: 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。所进行的计算与数据跟数据透视表中的排列有关。

Pandas 透视表概述


数据透视表(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. 黄金: 下单(1~3888)


  1. 铂金: 3888~6888


  1. 钻石: 6888以上


案例中用到的数据:


  1. 会员信息查询.xlsx


  1. 会员消费报表.xlsx


  1. 门店信息表.xlsx


  1. 全国销售订单数量表.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()
 



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



用数据透视表实现相同功能:dataframe.pivot_table()


  • index:行索引,传入原始数据的列名
  • columns:列索引,传入原始数据的列名
  • values: 要做聚合操作的列名
  • aggfunc:聚合函数


custom_info.pivot_table(index = '注册年月',values = '会员卡号',aggfunc = 'count’)


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


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


可视化,需要去除第一个月数据


第一个月数据是之前所有会员数量的累积(数据质量问题)




由于会员等级跟消费金额挂钩,所以会员等级分布分析可以说明会员的质量


通过groupby实现,注册年月,会员等级,按这两个字段分组,对任意字段计数



分组之后得到的是multiIndex类型的索引,将multiIndex索引变成普通索引


custom_info.groupby(['注册年月','会员等级'])['会员卡号'].count().reset_index()
# 使得结果更美观


或使用unsatck:


custom_info.groupby(['注册年月','会员等级'])['会员卡号'].count().unstack()



使用透视表可以实现相同效果:





增量等级占比分析,查看增量会员的整体情况









Pandas透视表及应用(二)+https://developer.aliyun.com/article/1543896?spm=a2c6h.13148508.setting.14.1fa24f0exT0YLK

相关文章
|
1月前
|
存储 数据挖掘 数据处理
Pandas中explode()函数的应用与实战
Pandas中explode()函数的应用与实战
36 0
|
7天前
|
SQL 数据可视化 数据挖掘
Pandas透视表及应用(二)
这个文本是关于使用Pandas进行数据分析的教程,主要关注会员数据的处理和业务指标的计算。
|
1月前
|
机器学习/深度学习 存储 算法
Pandas中的get_dummies()函数实战应用详解
Pandas中的get_dummies()函数实战应用详解
35 1
|
1月前
|
数据采集 数据挖掘 数据处理
Pandas在Python面试中的应用与实战演练
【4月更文挑战第16天】本文介绍了Python数据分析库Pandas在面试中的常见问题和易错点,包括DataFrame和Series的创建、数据读写、清洗预处理、查询过滤、聚合分组、数据合并与连接。强调了数据类型检查、索引理解、避免过度使用循环、内存管理和正确区分合并与连接操作的重要性。通过掌握这些知识和代码示例,可提升面试者在Pandas方面的专业能力。
61 3
|
1月前
|
索引 Python
使用Python的Pandas库进行数据透视表(pivot table)操作
使用Python Pandas进行数据透视表操作包括:安装Pandas库,导入库,创建或读取数据,如`pd.DataFrame()`或从文件读取;然后使用`pd.pivot_table()`创建透视表,指定数据框、行索引、列索引和值,例如按姓名和科目分组计算平均分;查看结果通过打印数据透视表;最后可使用`to_csv()`等方法保存到文件。这为基础步骤,可按需求调整参数实现更多功能。
63 2
|
1月前
|
索引 Python
如何使用Python的Pandas库进行数据透视表(pivot table)操作?
使用Pandas在Python中创建数据透视表的步骤包括:安装Pandas库,导入它,创建或读取数据(如DataFrame),使用`pd.pivot_table()`指定数据框、行索引、列索引和值,计算聚合函数(如平均分),并可打印或保存结果到文件。这允许对数据进行高效汇总和分析。
21 2
|
1月前
|
数据采集 SQL 数据挖掘
Python数据分析中的Pandas库应用指南
在数据科学和分析领域,Python语言已经成为了一种非常流行的工具。本文将介绍Python中的Pandas库,该库提供了强大的数据结构和数据分析工具,使得数据处理变得更加简单高效。通过详细的示例和应用指南,读者将了解到如何使用Pandas库进行数据加载、清洗、转换和分析,从而提升数据处理的效率和准确性。
|
1月前
|
Python
Pandas进阶--map映射,分组聚合和透视pivot_table详解
Pandas进阶--map映射,分组聚合和透视pivot_table详解
|
1月前
|
数据处理 Python
Pandas在数据分析中的应用案例
使用Pandas分析销售数据,通过`read_csv`读取CSV,`groupby`按产品类别分组并应用`agg`计算类别总销售额、平均价和销售量。之后,利用`sort_values`按销售额降序排列,`head`获取前5高销售额类别。示例代码展示了Pandas在数据处理和分析中的高效性。
41 0
|
1月前
|
存储 数据可视化 数据挖掘
实战案例:Pandas在金融数据分析中的应用
【4月更文挑战第16天】本文通过实例展示了Pandas在金融数据分析中的应用。案例中,一家投资机构使用Pandas加载、清洗股票历史价格数据,删除无关列并重命名,将日期设为索引。接着,数据被可视化以观察价格走势,进行基本统计分析了解价格分布,以及计算移动平均线来平滑波动。Pandas的便捷功能在金融数据分析中体现出高效率和实用性。