你可以使用以下方法在pandas DataFrame中通过分组来寻找最小值:
方法1:按一列的最小值分组
df.groupby('group_column')['values_column'].min()
方法2:按多列的最小值分组
df.groupby('group_column')['values_column1', 'values_column2'].min()
下面的例子展示了如何通过以下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 A 24 11
1 A 23 8
2 B 27 7
3 B 11 6
4 B 14 6
5 C 8 5
6 C 13 12
例子 1: Groupby 一列的最小值
下面的代码显示了如何找到点数列的最小值,按团队列分组。
#find minimum value of points, grouped by team
df.groupby('team')['points'].min()
team
A 23
B 11
C 8
Name: points, dtype: int64
从输出结果中我们可以看到:
- A队的积分最小值是23
- B队的积分最小值是11
- C队的最低分是8分
例2: 多列的Groupby最小值
下面的代码显示了如何找到积分和篮板列的最小值,并按球队列进行分组。
#find minimum value of points and rebounds, grouped by team
df.groupby('team')[['points', 'rebounds']].min()
points rebounds
team
A 23 8
B 11 6
C 8 5
从输出结果我们可以看出:
球队A
- 最低得分23
- 最低篮板数8
B队
- 最低得分11
- 最低篮板数6
团队C
- 最低得分8
- 最低篮板数5
注意:在指定数值列时,一定要使用双括号,否则可能会收到错误。
其他资源
下面的教程解释了如何在pandas中执行其他常见任务。