Pandas Groupby和计算平均值

  • Post category:Python

Pandas是Python语言中一个非常流行的数据分析库,其中Groupby是其最常用的操作之一。下面我们将详细讲解Pandas Groupby操作,以及如何计算平均值。我们将以一个包含销售数据的DataFrame为例进行演示:

import pandas as pd

data = {
    'Region': ['East', 'West', 'North', 'South', 'East', 'West', 'North', 'South'],
    'Product': ['Apple', 'Apple', 'Apple', 'Apple', 'Banana', 'Banana', 'Banana', 'Banana'],
    'Sales': [100, 120, 80, 90, 200, 180, 150, 170]
}

df = pd.DataFrame(data)

1. Groupby操作

Groupby操作可以将DataFrame对象按照列或列的组合进行分组,并对每一组数据进行聚合计算。下面是Groupby操作的语法:

grouped = df.groupby(by=grouping_columns)[['col1', 'col2', ..., 'coln']].function()

其中,by参数指定用于分组的列或列组合,可以是一个或多个列的名称或列名称的列表或数组。[[‘col1’, ‘col2’, …, ‘coln’]]表示需要对哪些列进行计算。function()表示需要对每个组进行的聚合计算。比如,可以使用mean()计算每个组的平均值。

下面是按照Region列进行分组,并计算每个分组的Sales的平均值:

grouped = df.groupby(by='Region')[['Sales']].mean()
print(grouped)

输出如下:

            Sales
Region           
East    150.000000
North   115.000000
South   130.000000
West    150.000000

可以看出,数据被按照Region列进行了分组,并计算了每个分组的Sales的平均值。

2. 计算平均值

接下来,我们来看如何计算DataFrame中的平均值。Pandas提供了mean()函数用于计算DataFrame中每列数据的平均值。语法如下:

df.mean()

如果不想计算某些列的平均值,可以使用drop()函数删除不需要计算的列:

df.drop(['col1', 'col2'], axis=1).mean()

其中,axis=1表示删除列。

我们可以使用mean()函数计算Sales列的平均值:

print(df['Sales'].mean())

输出如下:

130.0

总的来说,Pandas Groupby和计算平均值是Pandas中常用的操作之一,可以帮助你更好地分析和处理数据。在实际使用中,你也可以根据自己的需求,使用其他的聚合函数对数据进行计算。