📜  Python Pandas-聚合(1)

📅  最后修改于: 2023-12-03 15:18:57.887000             🧑  作者: Mango

Python Pandas-聚合

Pandas 是一个强大的数据处理和分析库,它提供了灵活且高效的数据结构,用于处理和分析大型数据集。Pandas 的聚合功能允许您根据一些条件对数据进行分组,并对每个组进行汇总计算。

概述

聚合是一种将数据集拆分为组,并为每个组计算统计数据的过程。在 Pandas 中,我们可以使用 groupby 方法将数据拆分为不同的组,然后应用各种聚合函数来计算每个组的统计结果。

聚合操作有助于我们在数据集中找到有关特定组的总体洞察,并可以帮助我们回答关于数据的各种问题,如“每个组的平均值是多少?”、“每个组的计数有多少?”等。

利用 groupby 进行分组

聚合操作的第一步是使用 groupby 方法将数据集按照特定的列进行分组。这将返回一个 GroupBy 对象,它提供了一组能够根据不同的聚合函数计算每个组统计结果的方法。

以下是一个使用 groupby 方法将数据按照 'category' 列进行分组的示例:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank'],
        'category': ['A', 'B', 'A', 'A', 'B', 'B'],
        'value': [10, 15, 20, 25, 30, 35]}

df = pd.DataFrame(data)

grouped = df.groupby('category')
应用聚合函数

一旦我们将数据分组到不同的组中,我们可以使用聚合函数来计算每个组的统计结果。Pandas 提供了许多常用的聚合函数,如求和 (sum)、平均值 (mean)、最大值 (max)、最小值 (min) 等等。

以下是一些常用的聚合函数的示例:

# 计算每个组的和
grouped_sum = grouped.sum()

# 计算每个组的均值
grouped_mean = grouped.mean()

# 计算每个组的最大值
grouped_max = grouped.max()

# 计算每个组的最小值
grouped_min = grouped.min()
自定义聚合函数

除了使用内置的聚合函数外,您还可以通过自定义函数来执行更复杂的聚合操作。您可以使用 agg 方法来应用自定义的聚合函数。

以下是一个使用自定义函数计算每个组的中位数的示例:

# 自定义函数计算中位数
def median(values):
    return np.median(values)

# 应用自定义函数进行聚合
grouped_median = grouped['value'].agg(median)
多重分组

在 Pandas 中,您还可以使用多列来分组数据,从而创建多级索引。这将导致具有层次化索引的分组结果,您可以轻松地根据不同的层次对数据进行操作。

以下是一个使用两列进行多级分组的示例:

grouped = df.groupby(['category', 'name'])
# 应用聚合函数
grouped_sum = grouped.sum()
grouped_mean = grouped.mean()
结论

Pandas 的聚合功能为数据分析提供了强大且灵活的工具。您可以使用内置的聚合函数,也可以自定义聚合函数以满足特定的需求。通过对数据进行分组并应用聚合函数,您可以轻松地获取有关数据集的各种统计信息和洞察,在数据分析过程中发现有价值的见解。

请注意,以上是 Pandas 聚合功能的浅显介绍,Pandas 还有其他许多强大的功能和方法可供探索和学习。详细了解这些功能将使您成为一个更专业和高效的数据分析师。