📅  最后修改于: 2023-12-03 15:06:13.970000             🧑  作者: Mango
在使用 Pandas 进行数据处理时,groupby
是一个非常有用的函数。它可以将数据按照某个列或多个列进行分组,并对每个分组进行聚合操作。在本文中,我们将讨论如何使用两个 groupby
函数来进一步细分数据集。
首先,让我们回顾一下单个 groupby
函数。假设我们有一个名为 df
的数据集,其中包含三个列:A
、B
和 C
。我们想要按照 A
列进行分组,并计算每个分组中 B
列的平均值:
import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar',
'foo', 'bar', 'foo', 'foo'],
'B': [1, 2, 3, 4, 5, 6, 7, 8],
'C': [10, 20, 30, 40, 50, 60, 70, 80]})
grouped = df.groupby('A')
result = grouped.mean()['B']
print(result)
输出:
A
bar 4.0
foo 4.8
Name: B, dtype: float64
上述代码中,我们使用 groupby('A')
将数据集按照 A
列进行分组,并使用 mean()
函数计算每个分组中 B
列的平均值。最后,我们使用 ['B']
选择要返回的列。
现在假设我们想要通过列 A
和列 B
来细分数据集,并计算每个分组中 C
列的平均值。在这种情况下,我们可以使用两个 groupby
函数:
import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar',
'foo', 'bar', 'foo', 'foo'],
'B': ['red', 'red', 'blue', 'blue',
'red', 'red', 'blue', 'blue'],
'C': [10, 20, 30, 40, 50, 60, 70, 80]})
grouped = df.groupby(['A', 'B'])
result = grouped.mean()['C']
print(result)
输出:
A B
bar blue 40
red 40
foo blue 50
red 35
Name: C, dtype: int64
上述代码中,我们使用 groupby(['A', 'B'])
将数据集按照 A
和 B
列进行分组,并使用 mean()
函数计算每个分组中 C
列的平均值。最后,我们使用 ['C']
选择要返回的列。
在本文中,我们讨论了如何使用两个 groupby
函数来进一步细分数据集。需要注意的是,每个 groupby
函数返回的是一个 GroupBy
对象,而不是一个数据表。因此,我们需要使用相应的聚合函数来处理分组数据。