一文秒懂Pandas中的crosstab与pivot

简介: 一文秒懂Pandas中的crosstab与pivot

大家好,今天我们要来聊聊Pandas中两个常用的数据处理函数:crosstab和pivot。这两个函数在数据透视和交叉表制作上非常有用,但是它们之间又有着微妙的区别。那么,crosstab和pivot到底有什么不同呢?让我们一起来看看吧!一、crosstab:交叉表制作神器crosstab是Pandas中用于制作交叉表的函数,它可以根据两个或多个分类变量计算频数或百分比。crosstab在市场调研、数据分析等领域应用广泛,可以方便地将分类数据转化为直观的表格形式。基本语法如下:

pd.crosstab(index, columns, values=None, aggfunc='count', margins=False, margins_name='All', normalize=False, dropna=True, errors='raise')

其中:

index:行索引的分类变量。columns:列索引的分类变量。values:可选参数,用于指定要聚合的值。aggfunc:聚合函数,默认为'count'计算频数。

举个例子,假设我们有一个包含性别和学历的数据集,我们可以使用crosstab制作一个性别与学历的交叉表:


import pandas as pd  # 假设df3是一个包含性别和学历的数据集  df3 = pd.DataFrame({      '性别': ['男', '女', '男', '女', '男', '女'],      '学历': ['本科', '硕士', '博士', '本科', '硕士', '博士']  })  df3

我要数一数里面男、女生中本科、硕士、博士都有多少个?用crosstab可以轻松统计。代码如下:


# 使用crosstab制作交叉表  crosstab_table3 = pd.crosstab(df3['性别'], df3['学历'])  crosstab_table3


bb6dab5b29c4bed1a2d0742e2f9df9d4.png


二、pivot:数据透视表的利器

pivot是Pandas中用于创建数据透视表的函数,它可以根据一个或多个键对数据进行重塑,并允许用户指定聚合函数。与crosstab相比,pivot更加灵活,可以处理更复杂的数据重塑需求。

基本语法如下:

DataFrame.pivot(index, columns, values)
其中:

index:用作数据透视表行索引的列名。columns:用作数据透视表列索引的列名。values:需要聚合的列名。

举个例子,假设我们有一个包含年份、季度和销售额的数据集,我们可以使用pivot创建一个以年份为行索引、季度为列索引的销售额数据透视表:

import pandas as pd    # 假设df是一个包含年份、季度和销售额的数据集  df4 = pd.DataFrame({      '年份': [2020, 2020, 2021, 2021],      '季度': ['Q1', 'Q2', 'Q1', 'Q2'],      '销售额': [100, 200, 150, 250]  })  df4
用pivot转置一下看看,代码如下:

# 使用pivot创建数据透视表  pivot_table4 = df4.pivot(index='年份', columns='季度', values='销售额')  pivot_table4

a09c3e38d2e60e81f7961728e5c656d5.png

三、crosstab与pivot的区别总结

1. 功能定位:crosstab主要用于制作交叉表,适用于简单的分类数据频数或百分比统计;而pivot则更加灵活,可以用于创建复杂的数据透视表,支持多种聚合操作。2. 使用场景:crosstab常用于市场调研、数据分析等领域,可以快速展示分类变量之间的关系;pivot则适用于数据分析和数据挖掘中的数据处理和重塑阶段,可以方便地对数据进行聚合和透视。3. 参数设置:crosstab的参数相对简单,主要关注行索引和列索引的分类变量;而pivot的参数设置更加灵活,除了行索引和列索引外,还可以指定聚合函数和值列等。综上所述,crosstab和pivot在Pandas中各有其独特的用途和优势。在实际应用中,我们可以根据具体的数据处理需求选择合适的函数。希望本文能够帮助大家更好地理解和应用crosstab和pivot!

相关文章
|
3月前
|
存储 人工智能 数据可视化
Pandas中的Melt:Pivot的逆操作
Pandas中的Melt:Pivot的逆操作
90 0
|
3月前
|
数据挖掘 索引 Python
Pandas中的crosstab:轻松构建交叉表
Pandas中的crosstab:轻松构建交叉表
82 0
|
3月前
|
数据挖掘 索引 Python
Pandas中的Pivot:数据重塑的艺术
Pandas中的Pivot:数据重塑的艺术
54 0
|
7月前
|
索引 Python
使用Python的Pandas库进行数据透视表(pivot table)操作
使用Python Pandas进行数据透视表操作包括:安装Pandas库,导入库,创建或读取数据,如`pd.DataFrame()`或从文件读取;然后使用`pd.pivot_table()`创建透视表,指定数据框、行索引、列索引和值,例如按姓名和科目分组计算平均分;查看结果通过打印数据透视表;最后可使用`to_csv()`等方法保存到文件。这为基础步骤,可按需求调整参数实现更多功能。
330 2
|
7月前
|
索引 Python
如何使用Python的Pandas库进行数据透视表(pivot table)操作?
使用Pandas在Python中创建数据透视表的步骤包括:安装Pandas库,导入它,创建或读取数据(如DataFrame),使用`pd.pivot_table()`指定数据框、行索引、列索引和值,计算聚合函数(如平均分),并可打印或保存结果到文件。这允许对数据进行高效汇总和分析。
84 2
|
数据挖掘 索引 Python
【100天精通Python】Day60:Python 数据分析_Pandas高级功能-数据透视表pivot_table()和数据交叉表crosstab()常用功能和操作
【100天精通Python】Day60:Python 数据分析_Pandas高级功能-数据透视表pivot_table()和数据交叉表crosstab()常用功能和操作
231 0
|
数据挖掘 索引 Python
pandas数据分析之数据重塑透视(stack、unstack、melt、pivot)
在数据分析的过程中,分析师常常希望通过多个维度多种方式来观察分析数据,重塑和透视是常用的手段。 数据的重塑简单说就是对原数据进行变形,为什么需要变形,因为当前数据的展示形式不是我们期望的维度,也可以说索引不符合我们的需求。对数据的重塑不是仅改变形状那么简单,在变形过程中,数据的内在数据意义不能变化,但数据的提示逻辑则发生了重大的改变。 数据透视是最常用的数据汇总工具,Excel 中经常会做数据透视,它可以根据一个或者多个指定的维度来聚合数据。pandas 也提供了数据透视函数来实现这些功能。 如果能熟练区分和使用各种重塑和透视分析方法,那用pandas处理分析日常的数据基本上就没有什么难度了。
271 0
|
1月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
71 0
|
3月前
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
99 0
|
1月前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
43 2