Grundsätzlich das gleiche wie Wählen Sie die erste Zeile in jeder Gruppe GROUP BY? nur in Pandas.
%Vor%Sortierung sieht vielversprechend aus:
%Vor%Aber dann wird zuerst nicht das gewünschte Ergebnis geben ... df.groupby ('A'). first ()
%Vor%Ich möchte eine weitere Alternative anbieten:
%Vor%Ein möglicher Vorteil hier ist, dass Sie einen ähnlichen indexierten Datenrahmen für Fälle zurückgeben, in denen Sie das möchten.
Ich meine das auch nicht als Frage oder Kritik an @ EdChums Antwort, aber es ist für mich nicht offensichtlich, dass die Sortierreihenfolge bei der Weitergabe an die Gruppe erhalten bleibt. Vielleicht ist es nach der Pandas-API, ich weiß ehrlich gesagt nicht, ob das hier etwas ist, auf das man zählen kann oder nicht, während die Methode rank()
nicht so eindeutig ist.
Die Funktion pandas groupby kann für das verwendet werden, was Sie wollen, aber es ist wirklich dafür gedacht Anhäufung. Dies ist eine einfache 'nimm die erste' Operation.
Was Sie eigentlich wollen, ist die Funktion pandas drop_duplicates , die Standardmäßig wird die erste Zeile zurückgegeben. Was Sie normalerweise als groupby-Schlüssel betrachten würden, sollten Sie als Teilmenge = Variable
übergeben %Vor%Sollte tun, was Sie wollen.
Auch df.sort('A')
sortiert den DataFrame df nicht, sondern gibt eine Kopie zurück, die sortiert ist. Wenn Sie es sortieren möchten, müssen Sie den Parameter inplace=True
hinzufügen.