Angenommen , ich habe einen Datenrahmen mit Säulen a
, b
und c
, ich mag den Datenrahmen von Spalte sortieren , b
um in aufsteigend, und durch Spalte c
in absteigender Reihenfolge, wie mache ich das?
python
pandas
python-2.7
sorting
data-analysis
Rakesh Adhikesavan
quelle
quelle
Antworten:
Ab der Version 0.17.0 wurde die
sort
Methode zugunsten von abgelehntsort_values
.sort
wurde in der Version 0.20.0 vollständig entfernt. Die Argumente (und Ergebnisse) bleiben gleich:Sie können das aufsteigende Argument verwenden von
sort
:Beispielsweise:
Wie von @renadeen kommentiert
Das heißt, wenn Sie df1 als sortierten DataFrame wiederverwenden möchten:
oder
quelle
sort
Methode einer Variablen zuweisen oderinplace=True
dem Methodenaufruf hinzufügen .Ab Pandas 0.17.0
DataFrame.sort()
ist es veraltet und wird in einer zukünftigen Version von Pandas entfernt. Die Möglichkeit, einen Datenrahmen nach seinen Werten zu sortieren, ist jetztDataFrame.sort_values
Als solche wäre die Antwort auf Ihre Frage jetzt
quelle
Bei großen Datenrahmen mit numerischen Daten kann es zu einer signifikanten Leistungsverbesserung kommen
numpy.lexsort
, bei der eine indirekte Sortierung mithilfe einer Tastenfolge durchgeführt wird:Eine Besonderheit ist, dass die definierte Sortierreihenfolge mit
numpy.lexsort
umgekehrt ist: zuerst(-'b', 'a')
nach Serien sortierena
. Wir negieren Serienb
, um zu reflektieren, dass wir diese Serien in absteigender Reihenfolge haben möchten.Beachten Sie, dass
np.lexsort
nur mit numerischen Werten sortiert wird, währendpd.DataFrame.sort_values
entweder mit Zeichenfolgen oder mit numerischen Werten gearbeitet wird. Die Verwendungnp.lexsort
mit Zeichenfolgen ergibt :TypeError: bad operand type for unary -: 'str'
.quelle