如何计算 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 中执行其他常见功能: