Pandas:如何在 crosstab() 函数中使用 aggfunc


您可以使用 pandas crosstab()函数中的aggfunc参数来创建使用特定指标聚合值的交叉表:

 p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=' count ')

aggfunc的默认值为“count”,但您可以指定其他聚合方法,例如average、median、sum、min、max等。

您还可以在aggfunc参数中指定多种聚合方法:

 p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=[' min ', ' max '])

以下示例展示了如何在实践中通过以下 pandas DataFrame 使用这些方法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C '],
                   ' position ':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]})

#view DataFrame
print (df)

   team position points
0 AG 22
1 AG 25
2 AF 24
3 BG 39
4 BF 34
5 BF 20
6 BF 18
7 GC 17
8 GC 20
9 CF 19
10 CF 22

示例 1:使用 aggfunc 中的值创建交叉表

我们可以使用以下crosstab()函数和aggfunc=’mean’参数来创建一个交叉表,显示每个位置和团队组合的平均值分:

 #create crosstab that displays mean points value by team and position
p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' mean ')

position F G
team		
A 24.0 23.5
B 24.0 39.0
C 20.5 18.5

以下是如何解释结果:

  • A队F位球员的平均分是24分
  • A队G位置球员的平均分是23.5分

等等。

我们还可以使用另一个聚合指标,例如最大值:

 #create crosstab that displays max points value by team and position
p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' max ')


position F G
team		
At 24 25
B 34 39
C 22 20

以下是如何解释结果:

  • A队F位置球员的最高分是24分
  • A 队 G 位置球员的最高分是25 分

等等。

示例2:在aggfunc中创建具有多个值的交叉表

我们可以使用aggfunc参数中具有多个值的crosstab()函数,通过每个位置和团队组合的多个指标来聚合点值:

 #create crosstab that displays min and max points by team and position
p.d. crosstab (df. team , df. position , df. points , aggfunc=[' min ', ' max ']) 

	              min max
position F G F G
team				
A 24 22 24 25
B 18 39 34 39
C 19 17 22 20

以下是如何解释结果:

  • A 队 F 位置球员的最低分值是24 分
  • A队G位置球员的最低分值为22分
  • A 队 F 位置球员的最高分值为24 分
  • A队G位置球员的最高分值为25

等等。

注意:您可以在此处找到 pandas crosstab()函数的完整文档。

其他资源

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

Pandas:如何创建带有百分比的交叉表
Pandas:如何使用 GroupBy 和值计数
Pandas:如何使用 GroupBy 和 bin 计数

添加评论

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