如何使用groupby对象获取其他列的总和?

时间:2015-03-31 15:08:22

标签: python pandas dataframe

我正在使用网络上的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循环的情况下这样做?

2 个答案:

答案 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()