Pandas groupby column1在column2上应用max,在result3中应用column3的相应值

时间:2018-01-05 10:14:24

标签: python pandas dataframe pandas-groupby

我有以下数据框:

d = {'item_code': ['Item1', 'Item2', 'Item3', 'Item1', 'Item2', 'Item2', 'Item2', 'Item1', 'Item3'], 'dollar_amount': ['200.25', '350.00', '120.00', '400.50', '1231.25', '700.00', '350.00', '200.25', '2340.00'], 'year': ['2010','2010','2010','2011','2011','2012','2012','2012','2012']}
df = pd.DataFrame(data=d)
df

    dollar_amount   item_code   year
0   200.25          Item1       2010
1   350.00          Item2       2010
2   120.00          Item3       2010
3   400.50          Item1       2011
4   1231.25         Item1       2011
5   700.00          Item2       2012
6   350.00          Item2       2012
7   200.25          Item1       2012
8   2340.00         Item3       2012

这就是我目前所拥有的:

df['dollar_amount'] = df['dollar_amount'].astype(float)
df.groupby('year', as_index=False).agg({'dollar_amount':'max'})

它给了我以下结果:

    year    dollar_amount
0   2010    350.0000
1   2011    1,231.2500
2   2012    2,340.0000

我想分组年份并找到当年的最大dollar_amount,并获得该最大dollar_amount的相应item_code。

所以预期的结果是这样的:

    year    dollar_amount   item_code
0   2010    350.0000        item2
1   2011    1,231.2500      item2
2   2012    2,340.0000      item3

0 个答案:

没有答案