Ich habe den folgenden großen Datenrahmen ( df
), der so aussieht:
Frage: Wie kann die erste Zeile jeder ID am effizientesten gelöscht (oder entfernt) werden? Ich will das:
%Vor% Ich kann eine Schleife über jedes einzelne ID
machen und die erste Zeile entfernen, aber ich glaube, das ist nicht sehr effizient.
Sie könnten groupby/transform
verwenden, um eine boolesche Maske zu erstellen, die für die gewünschten Zeilen True und für die Zeilen, die Sie nicht möchten, False ist. Sobald Sie eine solche boolesche Maske haben, können Sie den Sub-DataFrame mit df.loc[mask]
:
ergibt
%Vor%Da Sie an Effizienz interessiert sind, ist hier ein Benchmark:
%Vor%Berichte
%Vor% Ein anderer Zeilencode ist df.groupby('ID').apply(lambda group: group.iloc[1:, 1:])