How can I sort values in a dataframe based on an index and non-indexed columns?
Dataframe:
ID Colour A B C
45356 Green 1 34 4
34455 Yellow 23 0 1
53443 Brown 3 4 3
45555 Green 5 5 2
Table has two index columns (ID and Colour). I will like to sort the table based on ID(ascending), A (Descending) and C (ascending).
Required output is :
ID Colour A B C
34455 Yellow 23 0 1
45356 Green 1 34 4
45555 Green 5 5 2
53443 Brown 3 4 3
I have tried this:
df.set_index(inplace=True)
df.sort_values(['ID', 'A', 'C'], ascending=['True','False','True'])
This didn't work as "ID" as a column was not recognized.
解决方案
you want
df.reset_index().sort_values(
['ID', 'A', 'C'],
ascending=['True','False','True']
).set_index(['ID', 'Colour'])