在数据分析和处理过程中,数据透视表是一个非常强大的工具,可以帮助我们汇总和重塑数据。pandas.pivot_table
是 Pandas 提供的一个函数,用于创建数据透视表,支持多种聚合操作和复杂的数据处理。本文将详细介绍 pandas.pivot_table
的用途和用法,包括其参数详解、示例代码以及进阶使用技巧。
🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。CSDN优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:
gylzbk
)
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。
【Pandas】pandas.pivot_table详解与实战应用:数据透视表的高级用法,用于创建数据透视表,支持多种聚合操作和复杂的数据处理
1.简介 📘
在数据分析和处理过程中,数据透视表是一个非常强大的工具,可以帮助我们汇总和重塑数据。pandas.pivot_table
是 Pandas 提供的一个函数,用于创建数据透视表,支持多种聚合操作和复杂的数据处理。本文将详细介绍 pandas.pivot_table
的用途和用法,包括其参数详解、示例代码以及进阶使用技巧。
2.什么是pandas.pivot_table 🧩
pandas.pivot_table
是 Pandas 提供的一个函数,用于创建数据透视表。与 pandas.pivot
不同的是,pivot_table
函数可以对数据进行聚合操作,如计算均值、总和、计数等,非常适合用于数据汇总和多维度分析。
3.为什么使用pandas.pivot_table 🤔
使用 pandas.pivot_table
有以下几个优点:
- 多种聚合操作:可以对数据进行计数、求和、平均等多种聚合操作。
- 数据分析:可以根据不同的维度对数据进行汇总分析,帮助你更好地理解数据。
- 灵活性:支持多个索引、多个聚合函数和复杂的数据处理,灵活性非常高。
4.pandas.pivot_table方法详解 🔍
4.1 函数签名 🖊️
pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All', observed=False, sort=True)
4.2 参数解释 📝
data
: 类型:DataFrame。说明:待转换的 DataFrame。values
: 类型:str or object or a list of str,default None。说明:需要进行聚合操作的列。index
: 类型:str or object or a list of str,default None。说明:设置用于分组的列。columns
: 类型:str or object or a list of str,default None。说明:设置用于生成新 DataFrame 列的列。aggfunc
: 类型:function, list of functions, dict, or a string,default ‘mean’。说明:指定聚合函数,例如 ‘mean’, ‘sum’, ‘count’ 等。fill_value
: 类型:scalar,default None。说明:用于填补缺失值的值。margins
: 类型:bool,default False。说明:是否添加行列的总计。dropna
: 类型:bool,default True。说明:是否丢弃含有缺失值的列。margins_name
: 类型:str,default ‘All’。说明:聚合值的名称。observed
: 类型:bool,default False。说明:对于分类变量,是否仅显示出现过的分类。sort
: 类型:bool,default True。说明:是否对结果进行排序。
4.3 返回值 📤
返回一个重塑后的 DataFrame,其行和列根据指定的索引和列进行转换,同时对指定列进行聚合操作。
4.4 示例代码 👨💻
4.4.1 基本用法 💾
首先,我们来看看一个如何将长格式的数据通过透视表进行聚合的基础例子。
import pandas as pd
# 创建一个示例 DataFrame
df = pd.DataFrame({
'Date': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02'],
'City': ['New York', 'Los Angeles', 'New York', 'Los Angeles'],
'Temperature': [30, 25, 28, 24],
'Humidity': [55, 65, 50, 70]
})
# 使用 pandas.pivot_table 转换数据
pivot_table_df = pd.pivot_table(df, values='Temperature', index='Date', columns='City', aggfunc='mean')
print(pivot_table_df)
以上代码将 Date
作为行索引,将 City
作为列索引,并计算 Temperature
列的平均值。输出结果如下:
City Los Angeles New York
Date
2021-01-01 25.0 30.0
2021-01-02 24.0 28.0
4.4.2 使用多个聚合函数 ⏩
接下来,我们可以为透视表设置多个聚合函数,以便对数据进行更复杂的统计分析。
# 使用多个聚合函数
pivot_table_multi_agg = pd.pivot_table(df, values=['Temperature', 'Humidity'], index='Date', columns='City', aggfunc={'Temperature': ['mean', 'max'], 'Humidity': 'mean'})
print(pivot_table_multi_agg)
以上代码将 Date
作为行索引,将 City
作为列索引,并计算 Temperature
列的平均值和最大值,以及 Humidity
列的平均值。输出结果如下:
Temperature Humidity
mean max mean
City Los Angeles New York Los Angeles New York Los Angeles New York
Date
2021-01-01 25.0 30.0 25 30.0 65.0 55.0
2021-01-02 24.0 28.0 24 28.0 70.0 50.0
4.5 进阶使用 🚀
4.5.1 填补缺失值 💨
在生成的透视表中,可能会存在缺失值。可以使用 fill_value
参数来填补这些缺失值。
# 使用 pandas.pivot_table 转换数据,并填补缺失值
pivot_table_filled = pd.pivot_table(df, values='Temperature', index='Date', columns='City', aggfunc='mean', fill_value=0)
print(pivot_table_filled)
填补后的透视表如下:
City Los Angeles New York
Date
2021-01-01 25 30
2021-01-02 24 28
4.5.2 添加合计行和列 📜
可以通过 margins
参数来添加合计行和列,便于查看统计数据的总体情况。
# 使用 pandas.pivot_table 转换数据,并添加合计行和列
pivot_table_with_margins = pd.pivot_table(df, values='Temperature', index='Date', columns='City', aggfunc='mean', margins=True, margins_name='Total')
print(pivot_table_with_margins)
添加了合计行和列后的透视表如下:
City Los Angeles New York Total
Date
2021-01-01 25.0 30.0 27.5
2021-01-02 24.0 28.0 26.0
Total 24.5 29.0 26.75
5.注意事项 ⚠️
- 数据重复:确保数据没有重复项,或者在透视之前对数据进行预处理。
- 缺失值处理:生成的透视表可能会含有缺失值,考虑使用
fill_value
参数进行填补。 - 聚合函数:选择合适的聚合函数,以满足统计分析的需求。
6.参考资料 📚
7.结论 🏁
Pandas 的 pandas.pivot_table
函数提供了一种高效且灵活的方式,将 DataFrame 从长格式转换为宽格式,并对数据进行多种聚合操作。通过本文详细的讲解和示例,相信你已经掌握了 pandas.pivot_table
的基础使用方法和进阶技巧,有助于更好地进行数据重塑和分析。