如何计算 pandas 中的组平均值(附示例)


您可以使用以下方法来计算 pandas 中每组的平均值:

方法一:计算按列分组的平均值

 df. groupby ([' group_col '])[' value_col ']. mean ()

方法二:计算单列分组的多列的平均值

 df. groupby ([' group_col '])[' value_col1 ', ' value_col2 ']. mean ()

方法三:计算多列分组的一列的平均值

 df. groupby ([' group_col1 ', ' group_col2 '])[' value_col ']. mean ()

以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'F', 'F', 'G', 'F', 'F', 'G', 'G'],
                   ' points ': [30, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [4, 3, 7, 7, 12, 15, 8, 4]})

#view DataFrame
print (df)

  team position points assists
0 AG 30 4
1 AF 22 3
2 FY 19 7
3 AG 14 7
4 BF 14 12
5 BF 11 15
6 BG 20 8
7 BG 28 4

示例1:计算按列分组的列的平均值

以下代码显示如何计算按团队列分组的分数列的平均值:

 #calculate mean of points grouped by team
df. groupby (' team ')[' points ']. mean ()

team
At 9:25 p.m.
B 18.25
Name: points, dtype: float64

从结果我们可以看出:

  • A队的平均分值为21.25
  • B队的平均分值为18.25

示例 2:计算按单列分组的多列的平均值

以下代码显示如何计算按球队列分组的得分列的平均值和助攻列的平均值:

 #calculate mean of points and mean of assists grouped by team
df. groupby (' team ')[[' points ', ' assists ']]. mean ()

       assist points
team		
At 21.25 5.25
B 18.25 9.75

输出显示每支球队的平均得分值和平均助攻值。

示例3:计算由多列分组的一列的平均值

以下代码显示如何计算按团队位置列分组的分数列的平均值:

 #calculate mean of points, grouped by team and position
df. groupby ([' team ', ' position '])[' points ']. mean ()

team position
FY 20.5
      G 22.0
BF 12.5
      G 24.0
Name: points, dtype: float64

从结果我们可以看出:

  • A队F位置球员的平均分值为20.5
  • A队G位置球员的平均分值为22
  • B队F位置球员的平均分值为12.5
  • B队G位置球员的平均分值为24分

其他资源

以下教程解释了如何在 pandas 中执行其他常见功能:

如何找到 Pandas 中每组的最大值
如何找到pandas中每组的总和
如何在 Pandas 中按组计算分位数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注