如何在 Pandas 中使用 agg 函数来应用自定义函数

如何在 Pandas 中使用 agg 函数来应用自定义函数

参考:pandas agg custom function

在数据分析过程中,经常需要对数据集进行汇总或者聚合操作。Pandas 是 Python 数据分析库中一个非常强大的工具,它提供了广泛的功能来处理和分析数据。其中,agg() 函数是一个非常有用的方法,它允许用户对数据进行自定义的聚合操作。本文将详细介绍如何在 Pandas 中使用 agg() 函数来应用自定义函数,以及如何通过多种示例来展示其强大的功能。

1. agg() 函数简介

在 Pandas 中,agg() 函数是用来聚合数据的一种方法,它可以接受一个或多个操作以应用于数据集。通过使用 agg() 函数,你可以对数据集进行求和、平均、计数等多种聚合操作。更重要的是,agg() 函数还支持自定义函数,这使得数据聚合更加灵活和强大。

2. 使用 agg() 函数应用自定义函数

自定义函数允许你定义具体的逻辑来聚合数据。这些函数可以是简单的Python函数,也可以是更复杂的函数。在使用 agg() 函数时,你可以将这些自定义函数作为参数传递。

示例代码 1: 基本的自定义聚合函数

import pandas as pd
import numpy as np

# 创建示例数据
data = {'Product': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
        'Sales': [100, 150, 200]}
df = pd.DataFrame(data)

# 自定义聚合函数
def total_sales(series):
    return np.sum(series)

# 使用 agg() 应用自定义函数
result = df.agg({'Sales': total_sales})
print(result)

示例代码 2: 使用 lambda 函数进行聚合

import pandas as pd

# 创建示例数据
data = {'Product': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
        'Sales': [120, 180, 240]}
df = pd.DataFrame(data)

# 使用 lambda 函数进行聚合
result = df.agg({'Sales': lambda x: x.max() - x.min()})
print(result)

Output:

如何在 Pandas 中使用 agg 函数来应用自定义函数

示例代码 3: 对多列使用不同的聚合函数

import pandas as pd

# 创建示例数据
data = {'Product': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
        'Sales': [130, 190, 250],
        'Customers': [30, 45, 50]}
df = pd.DataFrame(data)

# 使用自定义函数和内置函数进行聚合
result = df.agg({'Sales': 'sum', 'Customers': 'mean'})
print(result)

Output:

如何在 Pandas 中使用 agg 函数来应用自定义函数

示例代码 4: 在同一列上应用多个聚合函数

import pandas as pd

# 创建示例数据
data = {'Product': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
        'Sales': [140, 200, 260]}
df = pd.DataFrame(data)

# 在同一列上应用多个聚合函数
result = df.agg({'Sales': ['sum', 'mean', 'std']})
print(result)

Output:

如何在 Pandas 中使用 agg 函数来应用自定义函数

示例代码 5: 使用自定义函数聚合整个 DataFrame

import pandas as pd

# 创建示例数据
data = {'Product': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
        'Sales': [150, 210, 270]}
df = pd.DataFrame(data)

# 自定义函数处理整个 DataFrame
def custom_agg(dataframe):
    return dataframe['Sales'].sum()

# 应用自定义函数
result = df.agg(custom_agg)
print(result)

示例代码 6: 结合 groupby()agg() 使用自定义函数

import pandas as pd

# 创建示例数据
data = {'Product': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
        'Region': ['East', 'West', 'East'],
        'Sales': [160, 220, 280]}
df = pd.DataFrame(data)

# 自定义函数计算平均销售
def average_sales(series):
    return series.mean()

# 结合 groupby() 和 agg()
result = df.groupby('Region').agg({'Sales': average_sales})
print(result)

Output:

如何在 Pandas 中使用 agg 函数来应用自定义函数

示例代码 7: 多个自定义函数在 groupby() 后使用

import pandas as pd

# 创建示例数据
data = {'Product': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
        'Region': ['North', 'South', 'North'],
        'Sales': [170, 230, 290]}
df = pd.DataFrame(data)

# 自定义函数列表
def max_sales(series):
    return series.max()

def min_sales(series):
    return series.min()

# 应用多个自定义函数
result = df.groupby('Region').agg({'Sales': [max_sales, min_sales]})
print(result)

Output:

如何在 Pandas 中使用 agg 函数来应用自定义函数

示例代码 8: 使用自定义函数对 DataFrame 的特定行进行聚合

import pandas as pd

# 创建示例数据
data = {'Product': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
        'Sales': [180, 240, 300]}
df = pd.DataFrame(data)

# 自定义函数聚合特定行
def custom_row_agg(dataframe):
    return dataframe.iloc[0]['Sales'] + dataframe.iloc[1]['Sales']

# 应用自定义函数
result = df.agg(custom_row_agg)
print(result)

示例代码 9: 结合条件语句的自定义聚合函数

import pandas as pd

# 创建示例数据
data = {'Product': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
        'Sales': [190, 250, 310]}
df = pd.DataFrame(data)

# 自定义函数包含条件语句
def conditional_agg(series):
    return series[series > 200].sum()

# 应用自定义函数
result = df.agg({'Sales': conditional_agg})
print(result)

Output:

如何在 Pandas 中使用 agg 函数来应用自定义函数

示例代码 10: 使用自定义函数对多个列进行不同的聚合操作

import pandas as pd

# 创建示例数据
data = {'Product': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
        'Sales': [200, 260, 320],
        'Customers': [35, 50, 55]}
df = pd.DataFrame(data)

# 自定义函数进行不同的聚合操作
def sum_sales(series):
    return series.sum()

def average_customers(series):
    return series.mean()

# 应用自定义函数
result = df.agg({'Sales': sum_sales, 'Customers': average_customers})
print(result)

Output:

如何在 Pandas 中使用 agg 函数来应用自定义函数

以上示例展示了如何在 Pandas 中使用 agg() 函数结合自定义函数进行数据聚合。通过这些示例,可以看到 agg() 函数的灵活性和强大功能,使得数据分析过程更加高效和精确。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程