Pandas: so sortieren sie dataframe basierend auf der zeichenfolgenspalte


Sie können die folgenden Methoden verwenden, um die Zeilen eines Pandas-DataFrames basierend auf den Werten einer bestimmten Zeichenfolgenspalte zu sortieren:

Methode 1: Nach Zeichenfolgenspalte sortieren (wenn die Spalte nur Zeichen enthält)

 df = df. sort_values (' my_string_column ')

Methode 2: Nach Zeichenfolgenspalte sortieren (wenn die Spalte Zeichen und Zahlen enthält)

 #create 'sort' column that contains digits from 'my_string_column'
df[' sort '] = df[' my_string_column ']. str . extract (' (\d+) ', expand= False ). astype (int)

#sort rows based on digits in 'sort' column
df = df. sort_values (' sort ')

Die folgenden Beispiele zeigen, wie die einzelnen Methoden in der Praxis angewendet werden.

Beispiel 1: Nach Zeichenfolgenspalte sortieren (wenn die Spalte nur Zeichen enthält)

Angenommen, wir haben den folgenden Pandas-DataFrame, der Informationen über den Verkauf verschiedener Produkte in einem Lebensmittelgeschäft enthält:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' product ': ['Apples', 'Oranges', 'Bananas', 'Lettuce', 'Beans'],
                   ' sales ': [18, 22, 19, 14, 29]})

#view DataFrame
print (df)

   product sales
0 Apples 18
1 Oranges 22
2 Bananas 19
3 Lettuce 14
4 Beans 29

Wir können die folgende Syntax verwenden, um die Zeilen des DataFrame basierend auf den Zeichenfolgen in der Produktspalte zu sortieren:

 #sort rows from A to Z based on string in 'product' column
df = df. sort_values (' product ')

#view updated DataFrame
print (df)

   product sales
0 Apples 18
2 Bananas 19
4 Beans 29
3 Lettuce 14
1 Oranges 22

Beachten Sie, dass die Zeilen jetzt basierend auf den Zeichenfolgen in der Produktspalte von A bis Z sortiert sind.

Wenn Sie stattdessen von Z nach A sortieren möchten, fügen Sie einfach das Argument aufsteigend=Falsch hinzu:

 #sort rows from Z to A based on string in 'product' column
df = df. sort_values (' product ', ascending= False )

#view updated DataFrame
print (df)

   product sales
1 Oranges 22
3 Lettuce 14
4 Beans 29
2 Bananas 19
0 Apples 18

Beachten Sie, dass die Zeilen jetzt basierend auf den Zeichenfolgen in der Spalte „Produkt“ von Z bis A sortiert sind.

Beispiel 2: Nach Zeichenfolgenspalte sortieren (wenn die Spalte Zeichen und Zahlen enthält)

Angenommen, wir haben den folgenden Pandas-DataFrame, der Informationen über den Verkauf verschiedener Produkte in einem Lebensmittelgeschäft enthält:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' product ': ['A3', 'A5', 'A22', 'A50', 'A2', 'A7', 'A9', 'A13'],
                   ' sales ': [18, 22, 19, 14, 14, 11, 20, 28]})

#view DataFrame
print (df)

  product sales
0 A3 18
1 A5 22
2 A22 19
3 A50 14
4 A2 14
5 A7 11
6 A9 20
7 A13 28

Beachten Sie, dass die Zeichenfolgen in der Produktspalte sowohl Zeichen als auch Zahlen enthalten.

Wenn wir versuchen, die Zeilen des DataFrame anhand der Werte in der Produktspalte zu sortieren, werden die Zeichenfolgen anhand der Zahlen nicht in der richtigen Reihenfolge sortiert:

 import pandas as pd

#sort rows based on strings in 'product' column
df = df. sort_values (' product ')

#view updated DataFrame
print (df)

  product sales
7 A13 28
4 A2 14
2 A22 19
0 A3 18
1 A5 22
3 A50 14
5 A7 11
6 A9 20

Stattdessen müssen wir eine neue temporäre Spalte namens sort erstellen, die nur die Zahlen aus der Produktspalte enthält, dann nach den Werten in der Sortierspalte sortieren und dann die Spalte vollständig löschen:

 import pandas as pd

#create new 'sort' column that contains digits from 'product' column
df[' sort '] = df[' product ']. str . extract (' (\d+) ', expand= False ). astype (int)

#sort rows based on digits in 'sort' column
df = df. sort_values (' sort ')

#drop 'sort' column
df = df. drop (' sort ', axis= 1 )

#view updated DataFrame
print (df)

  product sales
4 A2 14
0 A3 18
1 A5 22
5 A7 11
6 A9 20
7 A13 28
2 A22 19
3 A50 14

Beachten Sie, dass die Zeilen in der Produktspalte jetzt nach Zeichenfolgen sortiert sind und die Zahlen in der richtigen Reihenfolge sortiert sind.

Hinweis : Die vollständige Dokumentation der Pandas-Funktion sort_values() finden Sie hier .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in Pandas ausführen:

Pandas: So sortieren Sie nach Datum
Pandas: So sortieren Sie Spalten nach Namen
Pandas: So sortieren Sie nach Index und Spalte

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert