Pandas:如何使用 groupby 和值计数


您可以使用以下基本语法来计算 pandas DataFrame 中每组唯一值的频率:

 df. groupby ([' column1 ', ' column2 ']). size (). unstack (fill_value= 0 )

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

示例:在 Pandas 中使用 GroupBy 和值计数

假设我们有以下 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', 'C', 'G', 'F', 'F', 'F', 'F'],
                   ' points ': [8, 8, 10, 10, 11, 8, 9, 10, 10, 10]})

#view DataFrame
print (df)

  team position points
0 AG 8
1 GA 8
2 AF10
3 AF 10
4 AC 11
5 BG 8
6 BF 9
7 BF 10
8 BF 10
9 BF 10

我们可以使用以下语法来计算值的频率,按团队位置列分组:

 #count frequency of points values, grouped by team and position
df. groupby ([' team ',' position ',' points ']). size (). unstack (fill_value= 0 )

	points 8 9 10 11
team position				
A C 0 0 0 1
        F 0 0 2 0
        G 2 0 0 0
B F 0 1 3 0
        G 1 0 0 0

以下是如何解释结果:

  • 对于 A 队和 C 位置的球员来说,数值 8 在积分栏中出现了0次。
  • 对于 A 队和 C 位置的球员来说,数值 9 在积分栏中出现了0次。
  • 对于 A 队和 C 位置的球员来说,数值 10 在积分栏中出现了0次。
  • 对于 A 队和 C 位置的球员来说,数值 11 在积分栏中出现了1次。

等等。

我们还可以使用以下语法来计算按团队分组的职位频率:

 #count frequency of positions, grouped by team
df. groupby ([' team ', ' position ']). size (). unstack (fill_value= 0 )

position C F G
team			
A 1 2 2
B 0 4 1

以下是如何解释结果:

  • 值“C”在 A 组中出现1次。
  • 值“F”在 A 队中出现了2次。
  • 值“G”在 A 队中出现了2次。
  • 值“C”在 B 组中出现0次。
  • B 队出现4次“F”值。
  • 值“G”在 B 队中出现1次。

等等。

其他资源

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

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

添加评论

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