0

Code:

df = pd.DataFrame([
    [2010, 'Apple', 10],
    [2011, 'Apple', 20],
    [2010, 'Banans', 50],
    [2011, 'Banans', 30]
], columns=['year', 'fruit', 'sales'])
print(df)
df.groupby(['fruit']).agg({'year': ['min', 'max'], 'sales': ['min', 'max']})

Output:

original df
    year   fruit  sales
0  2010   Apple     10
1  2011   Apple     20
2  2010  Banans     50
3  2011  Banans     30
new_df
         year       sales    
         min   max   min max
fruit                       
Apple   2010  2011    10  20
Banans  2010  2011    30  50

What I want is like:

    fruit   min_year  sales_2010  max_year  sales_2011
0   Apple       2010          10      2011          20
1   Banans      2010          50      2011          30

Note, it's not a naming issue here. sales_2010 is 50, not the min value which is 30.

user1633272
  • 1,797
  • 5
  • 21
  • 42

0 Answers0