Aggregation von lambda-Funktionen in pandas und numpy
Ich habe eine aggregation der folgenden Aussage:
data = data.groupby(['type', 'status', 'name']).agg({'one' : np.mean, 'two' : lambda value: 100* ((value>32).sum() / reading.mean()), 'test2': lambda value: 100* ((value > 45).sum() / value.mean())})
Ich weiterhin wichtige Fehler. Ich habe in der Lage zu machen, arbeiten für eine lambda-Funktion, aber nicht zwei.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die Spalte angeben, in
data
deren Werte aggregiert werden.Zum Beispiel,
statt
Wenn Sie nicht noch die Spalte (z.B.
'value'
), dann den Schlüssel im dict übergebenagg
genommen werden, werden die Spaltennamen. DieKeyError
s sind Pandas' Möglichkeit, Ihnen zu sagen, dass es nicht finden können Spalten mit der Bezeichnungone
,two
odertest2
im DataFramedata
.Hinweis: die Übergabe eines dict zu
groupby/agg
ist veraltet. Stattdessen geht voran, sollten Sie übergeben eine Liste von Tupeln statt. Jedes Tupel wird erwartet, dass die form('new_column_name', callable)
.Hier ist ausführbar Beispiel:
Wenn diese nicht mit Ihrer situation, dann geben Sie bitte lauffähigen code.
groupby/agg
? Wenn ja, übergeben Sie eine Liste von Tupeln statt. Ich habe aktualisiert, der code oben, um zu zeigen, was ich meine. Wenn dies Ihre situation, dann öffnen Sie bitte eine neue Frage mit allen details (einer lauffähigen Beispiel nicht mit der gewünschten Ausgabe hilft viel.)