Home > Mobile >  Need to sort the pivot table based on the columns passed in index attribute . Its MultiIndex
Need to sort the pivot table based on the columns passed in index attribute . Its MultiIndex

Time:12-12

Can't sort the pivot table based on the columns passed in index attribute in ascending order. when the df is printed 'Deepthy' comes first for column Name, I need 'aarathy' to come first

pls check this image while printing


df = pd.DataFrame({'Name': ['aarathy', 'Deepthy','aarathy','aarathy'],'Ship': ['everest', 'Oasis of the Seas','everest','everest'], 'Tracking': ['TESTTRACK003', 'TESTTRACK008', 'TESTTRACK009','TESTTRACK005'],'Bag': ['123', '127', '129','121'],})

df=pd.pivot_table(df,index=["Name","Ship","Tracking","Bag"]).sort_index(axis=1,ascending=True)


I tried it by passing sort_values and sort_index(axis=1,ascending=True) but id doesn't works

CodePudding user response:

You naeed convert values to lowercase and for first level of sorting use key parameter:

#helper column for run your code
df['new'] = 1

df=(pd.pivot_table(df,index=["Name","Ship","Tracking","Bag"])
       .sort_index(level=0,ascending=True, key=lambda x: x.str.lower()))
print (df)
                                            new
Name    Ship              Tracking     Bag     
aarathy everest           TESTTRACK003 123    1
                          TESTTRACK005 121    1
                          TESTTRACK009 129    1
Deepthy Oasis of the Seas TESTTRACK008 127    1
  • Related