Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich eine benutzerdefinierte Sortierung von Spalten in einem Pandas-DataFrame durchführen?

Wie kann ich eine benutzerdefinierte Sortierung von Spalten in einem Pandas-DataFrame durchführen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-01 20:13:12255Durchsuche

How Can I Perform Custom Sorting of Columns in a Pandas DataFrame?

Benutzerdefinierte Sortierung im Pandas-Datenrahmen

In Pandas kann eine benutzerdefinierte Sortierung erreicht werden, um Spalten basierend auf bestimmten Kriterien zu organisieren, z. B. der Gruppierung von Monaten in eine bestimmte Reihenfolge.

Eine Methode zur benutzerdefinierten Sortierung ist die Verwendung eines Wörterbuchs. Wenn Sie beispielsweise über ein Wörterbuch verfügen, das Monatsnamen der gewünschten Sortierreihenfolge zuordnet, können Sie die Spalte wie folgt sortieren:

custom_dict = {'March': 0, 'April': 1, 'Dec': 3}

s = df['m'].apply(lambda x: custom_dict[x])
df.sort_values(s)

Dadurch wird die Spalte „m“ basierend auf der in „ custom_dict'. Monaten, die nicht im Wörterbuch enthalten sind, wird ein fehlender Wert (NaN) zugewiesen und am Ende der sortierten Spalte platziert.

Ein eleganterer Ansatz, der in Pandas 0.15 eingeführt wurde, ist die Verwendung kategorialer Reihen. Durch Angabe der gewünschten Sortierreihenfolge beim Konvertieren der Monatsspalte in eine kategoriale Reihe können Sie das gleiche Ergebnis erzielen:

df['m'] = pd.Categorical(df['m'], ["March", "April", "Dec"])
df.sort_values("m")

Kurz gesagt bietet die benutzerdefinierte Sortierung in Pandas Flexibilität beim Gruppieren und Ordnen von Spalten nach bestimmten Kriterien Kriterien, die eine effektive Datenorganisation und -visualisierung ermöglichen.

Das obige ist der detaillierte Inhalt vonWie kann ich eine benutzerdefinierte Sortierung von Spalten in einem Pandas-DataFrame durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn