如何计算 pandas 每组的标准差


您可以使用以下方法来计算 pandas 中每组的标准差:

方法一:计算按列分组的列的标准差

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

方法2:计算单列分组的多列的标准差

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

方法三:计算多列分组的一列的标准差

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

以下示例展示了如何在实践中使用以下 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 standard deviation of points grouped by team
df. groupby (' team ')[' points ']. std ()

team
A 6.70199
B 7.50000
Name: points, dtype: float64

从结果我们可以看出:

  • A 队得分的标准差是6.70199
  • B 队的得分标准差是7.5

示例 2:计算按单列分组的多列的标准差

以下代码显示如何计算按球队列分组的得分列的标准差和助攻列的标准差:

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

	assist points
team		
A 6.70199 2.061553
B 7.50000 4.787136

结果显示每支球队的得分栏和助攻栏的标准差。

示例 3:计算由多列分组的列的标准差

以下代码显示了如何计算按团队位置列分组的分数列的标准差:

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

team position
AF 2.121320
      G 11.313708
BF 2.121320
      G 5.656854
Name: points, dtype: float64

从结果我们可以看出:

  • A队F位置球员得分的标准差为2.12
  • A队G位置球员的得分标准差为11.31
  • B队F位置球员得分的标准差为2.12
  • B队G位置球员的得分标准差为5.65

其他资源

以下教程解释了如何执行其他常见的 panda 任务:

如何计算 pandas 的组平均值
如何计算 Pandas 中每组的最大值
如何计算 Pandas 每组的金额
如何在 Pandas 中按组计算分位数

添加评论

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