-1

I have dataframe and I aggredated it as below. I want to sort (descending) it according to 'mean'. I m using below code but it gives an error.

enter image description here

df_agg = df.groupby('Subject Field').agg({'seniority_level':['min','mean','median','max']})

df_agg.sort_values(by='mean',ascending=False).head(10)

Error

enter image description here

1
  • what's the error? please provide a minimal reproducible example to reproduce your dataset. p.s you're probably looking for sort_index not values Commented Dec 20, 2020 at 15:57

1 Answer 1

1

Your aggregated dataframe has a multi level column index. So you need to address this by specifying both senority_level and mean.

df_agg.sort_values(('seniority_level', 'mean'), ascending=False)

Quick check to demonstrate:

df = pd.DataFrame({
    'Accounting': [1, 2, 3],
    'Acoustics': [4, 5, 6],
}).melt(var_name='Subject Field', value_name='seniority_level')
df_agg = df.groupby('Subject Field').agg(
    {'seniority_level':['min', 'mean', 'median']}
)

df_agg.sort_values(('seniority_level','mean'), ascending=True)
              seniority_level            
                          min mean median
Subject Field                            
Accounting                  1    2      2
Acoustics                   4    5      5
df_agg.sort_values(('seniority_level','mean'), ascending=False)
              seniority_level            
                          min mean median
Subject Field                            
Acoustics                   4    5      5
Accounting                  1    2      2
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.