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
NaNmit 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