一文教你学会用Python做数据透视表

勒令课程 2024-03-13 13:48:39

在Python数据分析中,Pandas库的透视表(Pivot Table)功能是数据聚合、重塑和多维统计分析的重要工具。它能够帮助我们快速地对大量数据进行重新组织和汇总,从而揭示隐藏在原始数据中的复杂关系。本文将深入探讨如何使用Pandas创建DataFrame透视表,并结合实际代码示例展示其在数据分析过程中的强大作用。

透视表基础概念

透视表是一种交互式的表格报告,它可以动态地对数据集进行分组、排序、总计以及其他汇总计算。在Pandas中,通过pivot_table()函数,我们可以轻松实现这一功能,以灵活的方式将长列表格式的数据转换为更易于理解的二维交叉表格形式。

Pandas DataFrame透视表制作步骤与示例

首先,假设我们有一个包含销售记录的DataFrame:

import pandas as pd# 创建一个模拟的销售数据集data = {'Region': ['East', 'West', 'East', 'West', 'East', 'West'], 'Category': ['Electronics', 'Clothing', 'Electronics', 'Clothing', 'Electronics', 'Clothing'], 'Month': ['Jan', 'Jan', 'Feb', 'Feb', 'Mar', 'Mar'], 'Sales': [1500, 2000, 2500, 3000, 3500, 4000], 'Expenses': [500, 600, 700, 800, 900, 1000]}df = pd.DataFrame(data)print(df)

1. 基础透视表创建

# 创建透视表,按Region和Category分组,对Sales求和pivot_basic = pd.pivot_table(df, values='Sales', index=['Region'], columns=['Category'], aggfunc=np.sum)print(pivot_basic)

在这个例子中,我们将Region作为行索引,Category作为列索引,然后对Sales进行求和操作。

2. 添加多重指标

# 在同一个透视表中添加多个度量指标pivot_advanced = pd.pivot_table(df, values=['Sales', 'Expenses'], index=['Region'], columns=['Category'], aggfunc={'Sales': np.sum, 'Expenses': np.mean})print(pivot_advanced)

现在我们在同一张透视表中同时展示了每个区域各类别的销售额总和和平均成本。

3. 设置层级列名和填充缺失值

# 设置多层次列名,并处理缺失值pivot_filled = pd.pivot_table(df, values='Sales', index=['Region'], columns=['Category', 'Month'], fill_value=0, aggfunc=np.sum)print(pivot_filled)

这里我们按照Region、Category和Month进行分组,并且用0填充未出现过的组合。

4. 使用自定义函数

# 应用自定义函数进行计算def profit(sales, expenses): return sales - expensespivot_custom_func = pd.pivot_table(df, values=['Sales', 'Expenses'], index=['Region'], columns=['Category'], aggfunc={'Sales': np.sum, 'Expenses': np.sum}, margins=True)pivot_custom_func['Profit'] = pivot_custom_func.eval('Sales - Expenses')print(pivot_custom_func)

此处,我们不仅进行了常规的求和操作,还定义了一个计算利润的自定义函数,并将其应用于透视表结果上。

进阶技巧与注意事项合并层次列:可以使用flatten_levels()方法来合并具有多级索引的列标签。设置汇总行或列:通过设置margins=True可以得到包括所有行或列的总计。数据过滤:在构建透视表前,可先利用条件筛选出需要分析的数据子集。性能优化:对于大数据集,可尝试使用Dask库等分布式计算框架提升透视表生成速度。总结

Pandas的透视表功能大大简化了数据分析中的复杂统计任务,它允许我们从不同角度观察数据,揭示数据内在联系。熟练掌握并运用Pandas DataFrame透视表技术,无疑会显著提升Python Web开发中数据预处理、报表生成以及决策支持系统的构建效率。

关注我,手把手带你快速入门 AI 机器学习编程!

1 阅读:77

勒令课程

简介:感谢大家的关注