Standardfehler beim Ignorieren von NaN in Pandas-Gruppen

Ich habe Daten in einen Datenrahmen mit einem Multi-Index für die Spaltenüberschriften geladen. Derzeit habe ich die Daten nach den Spaltenindizes gruppiert, um den Mittelwert der Gruppen zu ermitteln und die 95% -Konfidenzintervalle wie folgt zu berechnen:

from pandas import *
import pandas as pd
from scipy import stats as st

#Normalize to starting point then convert
normalized = (data - data.ix[0]) * 11.11111
#Group normalized data based on slope and orientation
grouped = normalized.groupby(level=['SLOPE','DEPTH'], axis=1)
#Obtain mean of each group
means = grouped.mean()
#Calculate 95% confidence interval for each group
ci = grouped.aggregate(lambda x: st.sem(x) * 1.96)

Das Problem dabei ist jedoch, dass die für die Gruppen verwendete mittlere Funktion NaN-Werte ignoriert, während die Scipy-Funktion st.sem NaN zurückgibt, wenn die Gruppe NaN enthält. Ich muss den Standardfehler berechnen, während ich NaNs als mittlere Funktion ignoriere.

Ich habe versucht, das 95% -Konfidenzintervall folgendermaßen zu berechnen:

#Calculate 95% confidence interval for each group
ci = grouped.aggregate(lambda x: np.std(x) / ??? * 1.96)

std in numpy gibt mir die Standardabweichung ohne Berücksichtigung von NaN-Werten, aber ich muss diese durch die Quadratwurzel der Gruppengröße ohne Berücksichtigung von NaNs dividieren, um den Standardfehler zu erhalten.

Was ist der einfachste Weg, um den Standardfehler zu berechnen, während NaNs ignoriert werden?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage