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:
Gruppieren Sie die Daten:Gruppieren Sie den DataFrame nach den gewünschten Spalten mithilfe von groupby() Methode:
df_grouped = df.groupby(['id', 'value'])
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()
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()
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"]})
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)
Ausgabe:
id value 0 1 first 1 2 first 2 3 first 3 4 second 4 5 first 5 6 first 6 7 fourth
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!