如何找到 pandas 中每组的最大值


通常,您可能希望找到 pandas DataFrame 中每组的最大值。

幸运的是,使用groupby()max()函数和以下语法很容易做到这一点:

 df. groupby (' column_name '). max ()

本教程使用以下 pandas DataFrame 解释了此函数实际使用的几个示例:

 import pandas as pd

#create pandas DataFrame
df = pd. DataFrame ({'team': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
                   'points':[24, 23, 27, 11, 14, 8, 13],
                   'rebounds': [11, 8, 7, 6, 6, 5, 12]})

#display DataFrame
print (df)

  team points rebounds
0 to 24 11
1 to 23 8
2 B 27 7
3 B 11 6
4 B 14 6
5 C 8 5
6 C 13 12

示例 1:按变量分组的几列的最大值

以下代码演示了如何查找 DataFrame 中按变量分组的多列的最大值:

 #find max values of points and rebounds, grouped by team
df. groupby (' team '). max (). reset_index ()


        team points rebounds
0 to 24 11
1 B 27 7
2 C 13 12

从结果我们可以看出:

  • A 队的最大得分为 24,最大篮板值为 11。
  • B 队的最大得分为 27,最大篮板值为 7。
  • C 队的最高得分值为 13,最高篮板值为 12。

请注意,我们使用了reset_index()函数来确保索引与原始DataFrame的索引匹配。

示例 2:按变量分组的单列的最大值

以下代码显示如何查找按单个变量分组的单列的最大值:

 #find max value of points, grouped by team
df. groupby (' team ')[' points ']. max (). reset_index ()

        team points
0 to 24
1 B 27
2 C 13

示例 3:按最大值排序

我们还可以使用sort_values()函数对最大值进行排序。

我们可以指定ascending=False从大到小排序:

 #find max value by team, sort descending
df. groupby (' team ')[' points ']. max (). reset_index (). sort_values ([' points '], ascending= False )


        team points
1 B 27
0 to 24
2 C 13

或者我们可以指定ascending=True从最小到最大排序:

 #find max value by team, sort ascending 
df. groupby (' team ')[' points ']. max (). reset_index (). sort_values ([' points '], ascending= True ) 

        team points
2 C 13
0 to 24
1 B 27

其他资源

如何计算 Pandas 中的列总和
如何计算 Pandas 中列的平均值
如何找到 Pandas 中列的最大值

添加评论

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