📅  最后修改于: 2023-12-03 15:08:44.078000             🧑  作者: Mango
在 Pandas 中, Groupby 是一个非常强大的功能,可以将数据分成几个组,并对每个组应用一个或多个聚合函数。本文将介绍如何使用 Groupby 和多个聚合函数。
Groupby 是 Pandas 中的一个函数,它可以把数据按照某些列分组,然后对数据进行聚合操作。常见的操作包括计数、求和、平均值、标准差等。示例代码如下:
import pandas as pd
# 创建数据
data = {
'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 20, 30, 40, 50, 60, 70, 80]
}
df = pd.DataFrame(data)
# Groupby 分组,按列 A 进行分组,并对列 C 进行求和
grouped = df.groupby('A')['C'].sum()
print(grouped)
输出结果如下:
A
bar 12
foo 24
Name: C, dtype: int64
上述示例中,我们按列 A 进行分组,并对列 C 进行了求和操作。
在实际场景中,我们经常需要同时对一个列进行多个聚合函数的操作(比如求和和平均值)。示例代码如下:
import pandas as pd
# 创建数据
data = {
'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 20, 30, 40, 50, 60, 70, 80]
}
df = pd.DataFrame(data)
# Groupby 分组,按列 A 进行分组,并对列 C 进行求和和平均值操作
grouped = df.groupby('A')['C'].agg(['sum', 'mean'])
print(grouped)
输出结果如下:
sum mean
A
bar 12 4.000000
foo 24 3.000000
上述示例中,我们按列 A 进行分组,并对列 C 进行了求和和平均值操作。通过 agg
函数,我们可以同时对一个列进行多个聚合函数的操作。
在实际场景中,我们还可以自定义聚合函数。示例代码如下:
import pandas as pd
# 创建数据
data = {
'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 20, 30, 40, 50, 60, 70, 80]
}
df = pd.DataFrame(data)
# 自定义聚合函数
def custom_agg(x):
return x.max() - x.min()
# Groupby 分组,按列 A 进行分组,并对列 C 进行自定义聚合函数操作
grouped = df.groupby('A')['C'].agg(custom_agg)
print(grouped)
输出结果如下:
A
bar 4
foo 6
Name: C, dtype: int64
上述示例中,我们按列 A 进行分组,并对列 C 进行了自定义聚合函数操作。自定义聚合函数通常会返回聚合结果的标量值。
在 Pandas 中,我们可以使用 Groupby 和多个聚合函数来对数据进行分组和聚合操作。通过示例代码,您可以更好地理解 Groupby 和多个聚合函数的用法。