Wie rufe ich die erste Zeile jeder Gruppe in einem Pandas DataFrame basierend auf mehreren Spalten ab?

DDD
Freigeben: 2024-11-17 09:59:03
Original
725 Leute haben es durchsucht

How to retrieve the first row of each group in a Pandas DataFrame based on multiple columns?

Erste Zeile jeder Gruppe in einem Pandas-DataFrame abrufen

Frage:

Wie Können Sie die erste Zeile jeder Gruppe effizient aus einem Pandas DataFrame extrahieren, in dem die Gruppierung durch mehrere definiert ist? Spalten?

Antwort:

So rufen Sie die erste Zeile jeder Gruppe in einem Pandas DataFrame basierend auf mehreren Spalten ab:

  1. Gruppieren Sie die Daten:Gruppieren Sie den DataFrame nach den gewünschten Spalten mithilfe von groupby() Methode:

    df_grouped = df.groupby(['id', 'value'])
    Nach dem Login kopieren
  2. Anwenden einer Aggregationsfunktion:Wenden Sie die Funktion first() auf jede Gruppe an, um das erste Nicht-Null-Element zu erhalten:

    df_first_rows = df_grouped.first()
    Nach dem Login kopieren
  3. Index zurücksetzen (optional): Wenn Sie die „ID“ und benötigen 'value'-Spalten als separate Spalten verwenden Sie die Methode reset_index():

    df_first_rows = df_first_rows.reset_index()
    Nach dem Login kopieren

Beispiel:

Bedenken Sie den folgenden DataFrame:

df = pd.DataFrame({'id': [1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 5, 6, 6, 6, 7, 7],
                   'value': ["first", "second", "second", "first",
                             "second", "first", "third", "fourth",
                             "fifth", "second", "fifth", "first",
                             "first", "second", "third", "fourth", "fifth"]})
Nach dem Login kopieren

Anwenden des 上記のSchritte:

df_grouped = df.groupby(['id', 'value'])
df_first_rows = df_grouped.first()
df_first_rows = df_first_rows.reset_index()

print(df_first_rows)
Nach dem Login kopieren

Ausgabe:

   id   value
0   1   first
1   2   first
2   3   first
3   4   second
4   5   first
5   6   first
6   7   fourth
Nach dem Login kopieren

Dieser Code ruft erfolgreich die erste Zeile jeder Gruppe ab, die durch die Spalten „id“ und „value“ definiert ist.

Das obige ist der detaillierte Inhalt vonWie rufe ich die erste Zeile jeder Gruppe in einem Pandas DataFrame basierend auf mehreren Spalten ab?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage