Pandas:计算 groupby 中列的平均值和标准值


在 pandas 中使用groupby()操作后,您可以使用以下语法来计算列的均值和标准差:

 df. groupby ([' team '], as_index= False ). agg ({' points ':[' mean ', ' std ']})

这个特定示例根据Team列中的值对 pandas DataFrame 的行进行分组,然后计算Points列中值的平均值和标准差。

以下示例展示了如何在实践中使用此语法。

示例:计算 Pandas groupby 中某一列的均值和范数

假设我们有以下 pandas DataFrame,其中包含来自不同球队的篮球运动员的信息:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                   ' points ': [12, 15, 17, 17, 19, 14, 15, 20, 24, 28],
                   ' assists ': [5, 5, 7, 9, 10, 14, 13, 8, 2, 7]})
                            
#view DataFrame
print (df)

  team points assists
0 to 12 5
1 to 15 5
2 To 17 7
3 To 17 9
4 B 19 10
5 B 14 14
6 B 15 13
7 C 20 8
8 C 24 2
9 C 28 7

我们可以使用以下语法来计算列中按团队列分组的值的平均值和标准差:

 #calculate mean and standard deviation of points, grouped by team
output = df. groupby ([' team '], as_index= False ). agg ({' points ':[' mean ', ' std ']})

#view results
print (output)

  team points          
         mean std
0 A 15.25 2.362908
1 B 16.00 2.645751
2 C 24.00 4.000000

从结果我们可以看出:

  • A队的平均分值为15.25
  • A 队得分的标准差是2.362908

等等。

我们还可以重命名列,以便结果更易于阅读:

 #rename columns
output.output. columns = [' team ', ' points_mean ', ' points_std ']

#view updated results
print (output)

  team points_mean points_std
0 A 15.25 2.362908
1 B 16.00 2.645751
2 C 24.00 4.000000

注意:您可以在此处找到 pandas groupby()操作的完整文档。

其他资源

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

如何在 Pandas 中执行 GroupBy 求和
如何在 Pandas 中使用 Groupby 和 Plot
如何在 Pandas 中使用 GroupBy 计算唯一值

添加评论

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