Pandas DataFrame DataFrame.sort_values() Funktion
-
Syntax von
pandas.DataFrame.sort_values()
: -
Beispiel-Codes: DatenFrame mit Pandas sortieren
pandas.DataFrame.sort_values()
Basierend auf einer einzelnen Spalte -
Beispiel-Codes: DataFrame mit Pandas sortieren
DataFrame.sort_values()
Basierend auf mehreren Spalten -
Beispiel-Codes: DataFrame in absteigender Reihenfolge mit Pandas sortieren
DataFrame.sort_values()
-
Beispiel-Codes: DataFrame sortieren, indem man
NaN
mit Pandas an erster Stelle setztDataFrame.sort_values()
Die Methode Pandas DataFrame.sort_values()
sortiert den Aufrufer DataFrame
in aufsteigender oder absteigender Reihenfolge nach Werten in der angegebenen Spalte entlang eines der beiden Indizes.
Syntax von pandas.DataFrame.sort_values()
:
DataFrame.sort_values(
by,
axis=0,
ascending=True,
inplace=False,
kind="quicksort",
na_position="last",
ignore_index=False,
)
Parameter
by |
Name oder Liste von Namen zum Sortieren nach |
axis |
entlang der row (axis=0) oder column (axis=1) sortieren |
ascending |
in aufsteigender Reihenfolge (ascending=True ) oder absteigender Reihenfolge (ascending=False ) sortieren |
inplace |
Boolesch. Wenn True , modifizieren Sie den Aufrufer DataFrame an Ort und Stelle |
kind |
welcher Sortieralgorithmus verwendet werden soll. default:quicksort |
na_position |
Setzen Sie den Wert NaN an den Anfang (na_position=first ) oder an das Ende (na_position=last ) |
ignore_index |
Boolesch. Wenn True , werden die Indizes aus dem ursprünglichen DataFrame ignoriert. Der Standardwert ist False , was bedeutet, daß die Indizes verwendet werden. Neu in Version 1.0.0 |
Zurück
Wenn inplace
gleich True
ist, gibt es den sortierten DataFrame
zurück; andernfalls None
.
Beispiel-Codes: DatenFrame mit Pandas sortieren pandas.DataFrame.sort_values()
Basierend auf einer einzelnen Spalte
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
sorted_df=df.sort_values(by=['Price'])
print("After Sorting:")
print(sorted_df)
Ausgabe:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
Date Sales Price
1 April-11 300 1
2 April-12 400 2
5 April-16 300 2
0 April-10 200 3
4 April-14 300 3
3 April-13 200 4
Sortiert den DataFrame df
in aufsteigender Reihenfolge (Voreinstellung) nach Werten in der Spalte Price
.
Die Indizes im sortierten DataFrame
bleiben die gleichen wie im ursprünglichen DataFrame
.
Wenn Sie es vorziehen, die neue Indexspalte im sortierten DataFrame
zu haben, dann können Sie ignore_index
(eingeführt ab Version 1.0.0) auf True
setzen.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]
df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})
print("Before Sorting:")
print(df)
sorted_df = df.sort_values(by=["Price"], ignore_index=True)
print("After Sorting:")
Ausgabe:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
0 April-11 300 1
1 April-12 400 2
2 April-16 300 2
3 April-10 200 3
4 April-14 300 3
5 April-13 200 4
Hier verwenden wir ignore_index=True
, um Zeilen neue Indexe zuzuweisen und den Index des ursprünglichen DataFrame
zu ignorieren.
Beispiel-Codes: DataFrame mit Pandas sortieren DataFrame.sort_values()
Basierend auf mehreren Spalten
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
df.sort_values(by=['Sales','Price'],
ignore_index=True,
inplace=True)
print("After Sorting:")
print(df)
Ausgabe:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
0 April-10 200 3
1 April-13 200 4
2 April-11 300 1
3 April-16 300 2
4 April-14 300 3
5 April-12 400 2
Hier wird zunächst der Sales
zuerst in aufsteigender Reihenfolge sortiert, und dann wird auch der Price
für jeden Sales
aufsteigend sortiert.
In der Spalte df
ist 200
der kleinste Wert der Spalte Sales
und 3
der kleinste Wert der Spalte Preis
für den Wert Sales
von 200
.
Die Zeile mit 200
in der Spalte Sales
und 3
in der Spalte Price
geht also nach oben.
Aufgrund von inplace=True
wird der ursprüngliche DataFrame
nach dem Aufruf der Funktion sort_values()
modifiziert.
Beispiel-Codes: DataFrame in absteigender Reihenfolge mit Pandas sortieren DataFrame.sort_values()
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
sorted_df=df.sort_values(by=['Sales'],
ignore_index=True,
ascending=False)
print("After Sorting:")
print(sorted_df)
Ausgabe:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
0 April-12 400 2
1 April-11 300 1
2 April-14 300 3
3 April-16 300 2
4 April-10 200 3
5 April-13 200 4
Es sortiert den DataFrame df
in der absteigenden Reihenfolge der Werte der Spalte Sales
.
400
ist der größte Wert in der Spalte Sales
; daher geht der Eintrag nach oben, und andere Zeilen werden entsprechend sortiert.
Beispiel-Codes: DataFrame sortieren, indem man NaN
mit Pandas an erster Stelle setzt DataFrame.sort_values()
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
sorted_df=df.sort_values(by=['Price'],ignore_index=True,na_position='first')
print("After Sorting:")
print(sorted_df)
Ausgabe:
Before Sorting:
Date Sales Price
0 April-10 200 NaN
1 April-11 300 1.0
2 April-12 400 2.0
3 April-13 200 4.0
4 April-14 300 3.0
5 April-16 300 NaN
After Sorting:
Date Sales Price
0 April-10 200 NaN
1 April-16 300 NaN
2 April-11 300 1.0
3 April-12 400 2.0
4 April-14 300 3.0
5 April-13 200 4.0
Standardmäßig werden NaN
-Werte nach der Sortierung an das Ende von DataFrame
gesetzt.
Aber durch Setzen von na_position=first
können wir die NaN
Werte an den Anfang von DataFrame
setzen.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn