Pandas 自定义聚合函数

Pandas 自定义聚合函数

参考:pandas agg custom function

Pandas 是一个强大的 Python 数据分析库,它提供了广泛的功能来处理和分析数据。在数据分析中,经常需要对数据集进行聚合操作,以便更好地理解数据的特性。Pandasagg() 函数是一个非常有用的工具,它允许用户对数据进行聚合操作,并可以使用自定义函数来扩展聚合的功能。本文将详细介绍如何在 Pandas 中使用 agg() 函数以及如何创建和应用自定义聚合函数。

Pandas agg() 函数简介

Pandas 的 agg() 函数允许对数据组进行多种统计聚合操作。这个函数非常灵活,支持内置的统计函数,如 summeanmax 等,同时也支持用户定义的自定义函数。使用 agg() 函数可以一次性对数据集应用多个聚合操作,极大地提高了数据处理的效率。

示例代码 1: 基本聚合操作

import pandas as pd
import numpy as np

# 创建示例 DataFrame
df = pd.DataFrame({
    'A': np.random.rand(10),
    'B': np.random.rand(10)
})

# 使用 agg() 应用内置函数
result = df.agg(['sum', 'mean'])
print(result)

Output:

Pandas 自定义聚合函数

示例代码 2: 使用自定义函数进行聚合

import pandas as pd
import numpy as np

# 创建示例 DataFrame
df = pd.DataFrame({
    'A': np.random.rand(10),
    'B': np.random.rand(10)
})

# 定义自定义聚合函数
def my_custom_function(x):
    return np.sum(x) + 1

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

Output:

Pandas 自定义聚合函数

创建自定义聚合函数

在 Pandas 中,自定义聚合函数可以让你对数据进行特定的处理,这在处理复杂数据或进行特定统计分析时非常有用。自定义函数可以是任何接受一个数组并返回单个值的函数。

示例代码 3: 自定义求和函数

import pandas as pd
import numpy as np

# 创建示例 DataFrame
df = pd.DataFrame({
    'A': np.random.rand(10),
    'B': np.random.rand(10)
})

# 定义自定义求和函数
def custom_sum(x):
    return np.sum(x) + 10

# 使用 agg() 应用自定义求和函数
result = df.agg(custom_sum)
print(result)

Output:

Pandas 自定义聚合函数

示例代码 4: 自定义最大值函数

import pandas as pd
import numpy as np

# 创建示例 DataFrame
df = pd.DataFrame({
    'A': np.random.rand(10),
    'B': np.random.rand(10)
})

# 定义自定义最大值函数
def custom_max(x):
    return np.max(x) * 1.1

# 使用 agg() 应用自定义最大值函数
result = df.agg(custom_max)
print(result)

Output:

Pandas 自定义聚合函数

示例代码 5: 自定义统计函数

import pandas as pd
import numpy as np

# 创建示例 DataFrame
df = pd.DataFrame({
    'A': np.random.rand(10),
    'B': np.random.rand(10)
})

# 定义自定义统计函数
def stats(x):
    return {'mean': np.mean(x), 'std': np.std(x)}

# 使用 agg() 应用自定义统计函数
result = df.agg(stats)
print(result)

Output:

Pandas 自定义聚合函数

在 GroupBy 对象上使用自定义聚合函数

在处理分组数据时,agg() 函数同样可以与 Pandas 的 groupby() 函数结合使用,以对不同的分组执行不同的聚合操作。这在数据分析中非常常见,比如需要对不同的类别计算不同的统计指标。

示例代码 6: GroupBy 后使用自定义聚合函数

import pandas as pd
import numpy as np

# 创建示例 DataFrame
df = pd.DataFrame({
    'Category': ['A', 'A', 'B', 'B', 'C', 'C'],
    'Values': np.random.rand(6)
})

# 定义自定义聚合函数
def range_func(x):
    return np.max(x) - np.min(x)

# 使用 groupby() 和 agg() 应用自定义聚合函数
result = df.groupby('Category').agg(range_func)
print(result)

Output:

Pandas 自定义聚合函数

示例代码 7: 多个自定义函数在 GroupBy 上的应用

import pandas as pd
import numpy as np

# 创建示例 DataFrame
df = pd.DataFrame({
    'Category': ['A', 'A', 'B', 'B', 'C', 'C'],
    'Values': np.random.rand(6)
})

# 定义多个自定义聚合函数
def range_func(x):
    return np.max(x) - np.min(x)

def mean_plus_std(x):
    return np.mean(x) + np.std(x)

# 使用 groupby() 和 agg() 应用多个自定义聚合函数
result = df.groupby('Category').agg([range_func, mean_plus_std])
print(result)

Output:

Pandas 自定义聚合函数

结论

在本文中,我们详细介绍了 Pandas 的 agg() 函数及其在数据聚合中的应用。我们探讨了如何使用内置的聚合函数,以及如何创建和应用自定义聚合函数来处理更复杂的数据分析任务。通过示例代码,我们展示了 agg() 函数的灵活性和强大功能,特别是在结合 groupby() 函数进行分组聚合时的应用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程