erhalten erste und letzte Werte in einer groupby

9

Ich habe einen Datenrahmen df

%Vor%

Wie bekomme ich die erste und die letzte Zeile, gruppiert nach der ersten Ebene des Indexes?

Ich habe es versucht

%Vor%

und habe

%Vor%

Das ist so nah dran, was ich will. Wie kann ich den Index der Ebene 1 beibehalten und stattdessen Folgendes erhalten:

%Vor%     
Brian 05.08.2016, 20:23
quelle

1 Antwort

12

Option 1

%Vor%

Option 2 - funktioniert nur, wenn der Index eindeutig ist

%Vor%

Option 3 - dies ist nur sinnvoll, wenn keine NAs vorhanden sind

Ich habe auch die Funktion agg missbraucht. Der Code unten funktioniert, ist aber viel hässlicher.

%Vor%

Hinweis

pro @unutbu: agg(['first', 'last']) nehmen die ersten Nicht-na-Werte.

Ich interpretiere das als, es muss dann notwendig sein, diese Spalte spaltenweise auszuführen. Außerdem ist das Erzwingen des Indexniveaus = 1 zum Ausrichten möglicherweise nicht einmal sinnvoll.

Lassen Sie uns einen weiteren Test hinzufügen

%Vor% %Vor%

%Vor%

Sicher genug! Diese zweite Lösung nimmt den ersten gültigen Wert in Spalte X. Es ist jetzt unsinnig, diesen Wert gezwungen zu haben, mit dem Index a übereinzustimmen.

    
piRSquared 05.08.2016, 20:24
quelle