Pandas:如何使用 groupby() 和 size()


您可以使用以下方法与 pandas 中的groupby()size()函数来计算每组出现的次数:

方法 1:对按变量分组的出现次数进行计数

 df. groupby (' var1 '). size ()

方法 2:对按多个变量分组的出现次数进行计数

 df. groupby ([' var1 ', ' var2 ']). size ()

方法 3:对按多个变量分组并按数字排序的出现次数进行计数

 df. groupby ([' var1 ', ' var2 ']). size (). sort_values (ascending= False )

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'G', 'G', 'F'],
                   ' points ': [15, 22, 24, 25, 20, 35, 34, 19, 14, 12]})

#view DataFrame
print (df)

  team position points
0 AG 15
1 AG 22
2 AF 24
3 AF 25
4 AF 20
5 BG 35
6 BG 34
7 BG 19
8 BG 14
9 BF 12

示例 1:对按变量分组的出现次数进行计数

以下代码展示了如何使用groupby()size()函数来统计team列中值的出现次数:

 #count occurrences of each value in team column
df. groupby (' team '). size ()

team
AT 5
B5
dtype: int64

从结果中我们可以看到,值A和B在团队列中都出现了5次。

示例 2:对按多个变量分组的出现次数进行计数

以下代码展示了如何使用groupby()size()函数来计算teamposition列中每个值组合的出现次数:

 #count occurrences of values for each combination of team and position
df. groupby ([' team ', ' position ']). size ()

team position
AF3
      G2
BF 1
      G4
dtype: int64

从结果我们可以看出:

  • A队和F位出现3次。
  • A队和G位置出现了两次

等等。

示例 3:对按多个变量分组的出现次数进行计数并排序

以下代码展示了如何使用groupby()size()函数来统计teamposition列中每个值组合的出现次数,然后按计数排序:

 #count occurrences for each combination of team and position and sort
df. groupby ([' team ', ' position ']). size (). sort_values (ascending= False )

team position
BG 4
AF3
      G2
BF 1
dtype: int64

输出显示团队位置值的每个组合的计数,按计数降序排列。

注意:要按数字升序排序,只需在sort_values()函数中删除ascending=False即可。

其他资源

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

如何使用 Pandas GroupBy 计算唯一值
如何将函数应用于 Pandas Groupby
如何从 Pandas GroupBy 创建条形图

添加评论

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