Come ordinare un Pandas DataFrame per indice?


91

Quando è presente un DataFrame come il seguente:

import pandas as pd
df = pd.DataFrame([1, 1, 1, 1, 1], index=[100, 29, 234, 1, 150], columns=['A'])

Come posso ordinare questo dataframe per indice con ogni combinazione di indice e valore di colonna intatta?

Risposte:


150

I dataframe hanno un sort_indexmetodo che restituisce una copia per impostazione predefinita. Passare inplace=Trueper operare sul posto.

import pandas as pd
df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df.sort_index(inplace=True)
print(df.to_string())

Mi da:

     A
1    4
29   2
100  1
150  5
234  3

13

Leggermente più compatto:

df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df = df.sort_index()
print(df)

Nota:


9
.sort()docstring diceDEPRECATED: use DataFrame.sort_values()
endolith

1
@endolith Indeed .sort()da allora è stato deprecato. La sostituzione sarebbe .sort_index()quella usata da Paul H nella sua risposta, nel qual caso l'unica differenza tra le nostre risposte è che io non uso inplace=True.
fantabolous
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.