Pandas Aggregation ignoriert NaN's
Ich aggregiere meinen Pandas-Datenrahmen:data
. Insbesondere möchte ich den Durchschnitt und die Summe @ erhaltamount
s durch Tupel von origin
undtype
]. Zum Mitteln und Summieren habe ich die folgenden Zahlenfunktionen ausprobiert:
import numpy as np
import pandas as pd
result = data.groupby(groupbyvars).agg({'amount': [ pd.Series.sum, pd.Series.mean]}).reset_index()
Mein Problem ist, dass dasamount
Spalte enthältNaN
s, wodurch dasresult
des obigen Codes, um viel @ zu habNaN
Durchschnitt und Summe.
Ich kenne beidepd.Series.sum
undpd.Series.mean
habenskipna=True
standardmäßig, also warum bekomme ich immer nochNaN
s hier?
Ich habe es auch versucht, was offensichtlich nicht funktioniert hat:
data.groupby(groupbyvars).agg({'amount': [ pd.Series.sum(skipna=True), pd.Series.mean(skipna=True)]}).reset_index()
BEARBEITEN Auf @ Korems Vorschlag habe ich auch versucht, ein @ zu verwendpartial
wie nachstehend
s_na_mean = partial(pd.Series.mean, skipna = True)
data.groupby(groupbyvars).agg({'amount': [ np.nansum, s_na_mean ]}).reset_index()
aber diesen Fehler bekommen:
error: 'functools.partial' object has no attribute '__name__'