Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to sort pandas dataframe from one column

I have a data frame like this:

print(df)          0          1     2 0   354.7      April   4.0 1    55.4     August   8.0 2   176.5   December  12.0 3    95.5   February   2.0 4    85.6    January   1.0 5     152       July   7.0 6   238.7       June   6.0 7   104.8      March   3.0 8   283.5        May   5.0 9   278.8   November  11.0 10  249.6    October  10.0 11  212.7  September   9.0 

As you can see, months are not in calendar order. So I created a second column to get the month number corresponding to each month (1-12). From there, how can I sort this data frame according to calendar months' order?

like image 676
Sachila Ranawaka Avatar asked Jun 13 '16 10:06

Sachila Ranawaka


1 Answers

Use sort_values to sort the df by a specific column's values:

In [18]: df.sort_values('2')  Out[18]:         0          1     2 4    85.6    January   1.0 3    95.5   February   2.0 7   104.8      March   3.0 0   354.7      April   4.0 8   283.5        May   5.0 6   238.7       June   6.0 5   152.0       July   7.0 1    55.4     August   8.0 11  212.7  September   9.0 10  249.6    October  10.0 9   278.8   November  11.0 2   176.5   December  12.0 

If you want to sort by two columns, pass a list of column labels to sort_values with the column labels ordered according to sort priority. If you use df.sort_values(['2', '0']), the result would be sorted by column 2 then column 0. Granted, this does not really make sense for this example because each value in df['2'] is unique.

like image 139
EdChum Avatar answered Sep 21 '22 16:09

EdChum