Pandas实现excel透视表数据聚合功能

文摘   2024-11-01 09:12   湖北  

Pandas 是一个强大的 Python 数据分析库,它提供了许多功能来处理和分析数据。其中,Pandas 的 pivot_table 函数可以用来实现类似 Excel 中的数据透视表(Pivot Table)的功能。下面我将使用不同案例来介绍如何使用 Pandas 来实现这一功能。

案例 1: 基本数据透视表

假设我们有一个包含销售数据的 DataFrame,如下所示:

import pandas as pd

data = {
    'Date': ['2023-01-01''2023-01-02''2023-01-03''2023-01-04','2023-01-02','2023-01-02'],
    'Region': ['North''South''East''West','North''South',],
    'Sales': [100150200250,200,100]
}
df = pd.DataFrame(data)
df

我们可以使用 pivot_table 来创建一个按区域汇总的销售数据透视表:

pivot_table = df.pivot_table(values='Sales', index='Region', aggfunc='sum')
pivot_table

输出:

案例 2: 多列数据透视表

如果我们想要同时查看每个区域的总销售额和平均销售额,可以这样做:

pivot_table = df.pivot_table(values='Sales', index='Region', aggfunc=['sum''mean'])
pivot_table

输出:

案例 3: 添加多个索引

如果我们想根据日期和区域进行分组,可以添加多个索引:

pivot_table = df.pivot_table(values='Sales', index=['Date''Region'], aggfunc='sum')
pivot_table

输出:

案例 4: 使用多个聚合函数

我们可以对不同的列使用不同的聚合函数:

pivot_table = df.pivot_table(values='Sales', index='Region', aggfunc={'Sales': ['sum''mean']})
pivot_table

输出:

案例 5: 使用多个值列

我们可以对多个值列进行透视表操作:

data = {
    'Date': ['2023-01-01''2023-01-02''2023-01-04''2023-01-04'],
    'Region': ['North''North''East''West'],
    'Sales': [100150200250],
    'Profit': [10152025]
}
df = pd.DataFrame(data)
print(df)
pivot_table = df.pivot_table(values=['Sales''Profit'], index='Region', aggfunc='sum')
pivot_table

输出:

案例 6: 使用列作为索引

我们可以将某一列作为索引来进行透视表操作:

pivot_table = df.pivot_table(values='Sales', columns='Region', aggfunc='sum')
pivot_table

输出:

案例 7: 使用自定义聚合函数

我们可以定义自己的聚合函数来进行透视表操作:

def custom_agg(x):
    return x.max() - x.min()

pivot_table = df.pivot_table(values='Sales', index='Region', aggfunc=custom_agg)
pivot_table

输出:

通过上述案例,我们展示了如何使用Pandas中的pivot_table函数来实现类似Excel中的数据透视表功能。希望这些例子能够帮助大家更好地理解和应用Pandas在数据分析中的实际应用。



Python学习杂记
数据分析与挖掘、运筹优化、机器学习、AI 、数据可视化等。
 最新文章