2016-06-13 38 views
35

Ho un frame di dati come questocome ordinare i panda dataframe da una colonna

print(testDB) 

     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 

come potete vedere mesi non sono in ordine di calendario. così ho creato una seconda colonna e ottenuto il numero del mese relativo a quel mese. da questo come posso ordinare questo data frame in base all'ordine dei mesi di calendario. grazie

risposta

41

uso sort_values ordinare la df da valori di una colonna specifica:

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 
+0

grazie @EdChum. in realtà la colonna 2 dtype è float64. così quando provo questo mi dà che è necessario un numero intero. come posso convertire questa colonna da float a int –

+0

Non capisco il tuo problema, qual è l'errore qui? è il nome della colonna? il 'dtype' non importa qui prova' df.sort_values ​​(df.columns [2]) ' – EdChum

+0

ora funziona correttamente. grazie bro –

Problemi correlati