Wie sortiere ich einen Pandas DataFrame nach Index?


90

Wenn es einen DataFrame wie den folgenden gibt:

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

Wie kann ich diesen Datenrahmen nach Index sortieren, wobei jede Kombination aus Index und Spaltenwert intakt ist?

Antworten:


148

Datenrahmen verfügen über eine sort_indexMethode, die standardmäßig eine Kopie zurückgibt. Pass, inplace=Trueum an Ort und Stelle zu arbeiten.

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())

Gibt mir:

     A
1    4
29   2
100  1
150  5
234  3

13

Etwas kompakter:

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

Hinweis:


9
.sort()Docstring sagtDEPRECATED: use DataFrame.sort_values()
Endolith

1
@endolith In .sort()der Tat ist seitdem veraltet. Der Ersatz wäre, .sort_index()wie Paul H in seiner Antwort verwendet. In diesem Fall besteht der einzige Unterschied zwischen unseren Antworten darin, dass ich ihn nicht verwende inplace=True.
fantastisch
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.