Wie kann ich eine Pandas-DataFrame-Spalte basierend auf einem Wörterbuch individuell sortieren?

Linda Hamilton
Freigeben: 2024-11-27 19:30:14
Original
245 Leute haben es durchsucht

How Can I Custom Sort a Pandas DataFrame Column Based on a Dictionary?

Benutzerdefinierte Sortierung in Pandas-Datenrahmen

In Pandas müssen Sie manchmal einen Datenrahmen basierend auf einer benutzerdefinierten Reihenfolge sortieren. Dies kann mithilfe eines Wörterbuchs erreicht werden, um die gewünschte Sortierreihenfolge zu definieren.

Problem:
Sie haben einen Pandas-Datenrahmen mit einer Spalte, die Monatsnamen enthält. Sie möchten diese Spalte mithilfe eines benutzerdefinierten Wörterbuchs sortieren, z. B.:

custom_dict = {'March':0, 'April':1, 'Dec':3}
Nach dem Login kopieren

Lösung:

Verwendung kategorialer Reihen:
Pandas 0.15 führte die Categorical Series ein, die eine elegante Möglichkeit bietet, damit umzugehen Szenario:

  1. Konvertieren Sie die Monatsspalte in eine kategoriale Reihe und geben Sie die benutzerdefinierte Reihenfolge an:

    df['m'] = pd.Categorical(df['m'], ["March", "April", "Dec"])
    Nach dem Login kopieren
  2. Sortieren Sie den Datenrahmen basierend auf der Kategorie Spalte:

    df.sort_values("m")
    Nach dem Login kopieren

Verwenden eines Zwischenreihe:
Vor Pandas 0.15 konnten Sie eine Zwischenreihe verwenden, um eine benutzerdefinierte Sortierung zu erreichen:

  1. Wenden Sie das benutzerdefinierte Wörterbuch auf die Monatsspalte an:

    s = df['m'].apply(lambda x: {'March':0, 'April':1, 'Dec':3}[x])
    Nach dem Login kopieren
  2. Sortieren Sie den Vermittler Serie:

    s.sort_values()
    Nach dem Login kopieren
  3. Setzen Sie den Index des Datenrahmens auf die sortierte Zwischenreihe und sortieren Sie:

    df.set_index(s.index).sort()
    Nach dem Login kopieren

Verwenden die Ersetzungsmethode:
In neueren Versionen von Pandas bietet Series eine Ersetzungsmethode, die eine prägnantere Darstellung ermöglicht Lösung:

df['m'].replace({'March':0, 'April':1, 'Dec':3})
Nach dem Login kopieren

Diese Methode ersetzt die Monatswerte durch die entsprechenden im Wörterbuch angegebenen Sortierwerte. Durch Sortieren des Datenrahmens basierend auf der geänderten Monatsspalte wird die gewünschte benutzerdefinierte Reihenfolge erreicht.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Pandas-DataFrame-Spalte basierend auf einem Wörterbuch individuell sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage