Erste Zeile jeder Gruppe in einem Pandas-DataFrame nach mehreren Spalten abrufen
In einem Pandas-DataFrame ist es oft notwendig, die erste abzurufen Zeile jeder Gruppe, nachdem der DataFrame basierend auf bestimmten Spalten gruppiert wurde. Diese Aufgabe kann mit den integrierten Methoden von Pandas effizient erledigt werden.
Um dies zu erreichen, kann man die Methode .first() verwenden, um das erste (nicht Null)-Element für jede Gruppe zu erhalten. Die Syntax für first() lautet wie folgt:
df.groupby('group_columns').first()
In Ihrem Beispiel möchten Sie den DataFrame nach den Spalten „id“ und „value“ gruppieren und die erste Zeile jeder Gruppe abrufen. Sie können den folgenden Code verwenden:
df.groupby(['id', 'value']).first()
Dies führt zu folgendem Ergebnis:
id | value |
---|---|
1 | first |
2 | first |
3 | first |
4 | second |
5 | first |
6 | first |
7 | fourth |
Wenn Sie „id“ lieber als Spalte im resultierenden DataFrame haben möchten, können Sie dies tun Setzen Sie den Index mit reset_index() wie unten gezeigt zurück:
df.groupby(['id', 'value']).first().reset_index()
Die Ausgabe dieser Operation lautet:
id | value |
---|---|
1 | first |
2 | first |
3 | first |
4 | second |
5 | first |
6 | first |
7 | fourth |
Zusätzlich, wenn Sie jeweils die ersten n Zeilen abrufen möchten Gruppe können Sie die Methode .head() anstelle von first() verwenden. Um beispielsweise die ersten beiden Zeilen jeder Gruppe abzurufen, können Sie Folgendes verwenden:
df.groupby('id').head(2).reset_index(drop=True)
Dadurch wird der folgende DataFrame zurückgegeben:
id | value |
---|---|
1 | first |
1 | second |
2 | first |
2 | second |
3 | first |
3 | third |
4 | second |
4 | fifth |
5 | first |
6 | first |
6 | second |
7 | fourth |
7 | fifth |
Das obige ist der detaillierte Inhalt vonWie erhalte ich die erste Zeile jeder Gruppe in einem Pandas-DataFrame durch mehrere Spalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!