熊猫:需要每年找到每个团队的最高工资

时间:2018-03-15 20:05:39

标签: python pandas data-analysis

我正在努力研究一个简单的篮球运动员数据集 其中包含以下给出的一些基本栏目:

year | teamID | playerID | salary

数据来自1985-2016。我想找到每个团队每年提供的最高平均工资

我首先使用groupby,如下所示:

mean_salary_by_year_team = \
salaries.groupby(['yearID', 'teamID'])[['salary']].agg(np.mean)

现在这给了我每支球队和每年的平均薪水。但是,我怎样才能从每年的“薪水”和相应的“teamID”中提取最大值。

请不要给我确切的代码,但我可以参考一个或多个想法。如果我仍然没有得到答案,我会尽力回去:)

1 个答案:

答案 0 :(得分:1)

我只能假设你正在寻找这样的东西:

import pandas as pd
df = pd.DataFrame({'Year':[1,1,1,2,2,2], 'TeamID':[1,2,3,1,2,3], 'Salary':[100,200,300,150,350,250]})
df = df[['Year','TeamID','Salary']]
print('DATAFRAME:')
print(df)

print('MEAN SALARY:')
print(df.groupby('Year').agg({'Salary':'mean'}))

print('MAX SALARY:')
print(df.groupby('Year').apply(lambda x: x[x['Salary'] == x['Salary'].max()]))

print('MIN SALARY:')
print(df.groupby('Year').apply(lambda x: x[x['Salary'] == x['Salary'].min()]))

OUT:

DATAFRAME:
    Year  TeamID  Salary
0     1       1     100
1     1       2     200
2     1       3     300
3     2       1     150
4     2       2     350
5     2       3     250

MEAN SALARY:
      Salary
Year        
1        200
2        250

MAX SALARY:
        Year  TeamID  Salary
Year                        
1    2     1       3     300
2    4     2       2     350

MIN SALARY:
        Year  TeamID  Salary
Year                        
1    0     1       1     100
2    3     2       1     150