如何找到 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 中列的最大值