我正在使用网络上的mlb数据集来帮助学习。 数据框看起来像
Player Position Salary Year
0 Mike Witt Pitcher 1400000 1988
1 George Hendrick Outfielder 989333 1988
2 Chili Davis Outfielder 950000 1988
3 Brian Downing Designated Hitter 900000 1988
4 Bob Boone Catcher 883000 1988
.
.
.
作为一项实验,我试图找到通过职业生涯积累了最高薪水的投手。 mlb
是数据框。
到目前为止,我已经尝试过:
mask = mlb.Position == "Pitcher"
pitchers = mlb[mask]
pitcher_groups = pitchers.groupby("Player")
我不确定如何继续使用groupby对象。我知道我需要在每个组中找到薪水总和,并进行某种比较......如何在没有for循环的情况下这样做?
答案 0 :(得分:1)
只是做:
pitcher_groups['Salary'].sum()
这将对groupby对象的salary列进行求和。
In [57]:
df[df['Position']=='Pitcher'].groupby('Player')['Salary'].sum()
Out[57]:
Player
Mike Witt 1400000
Name: Salary, dtype: int64
答案 1 :(得分:0)
使用以下内容:
pitcher_groups = pitchers[['Player','Salary']].groupby('Player', sort=True).sum()