Erro padrão ignorando NaN em grupos de pandas por grupos
Eu tenho dados carregados em um dataframe com um multi índice para os cabeçalhos de colunas. Atualmente, tenho agrupado os dados pelos índices das colunas para obter a média dos grupos e calcular os intervalos de confiança de 95% como este:
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)
mas o problema com isso é que a função média que é usada nos grupos ignora os valores NaN enquanto a função scipy st.sem retorna NaN se houver um NaN no grupo. Eu preciso calcular o erro padrão ao ignorar NaNs como a função média faz.
Eu tentei calcular o intervalo de confiança de 95% como este:
#Calculate 95% confidence interval for each group
ci = grouped.aggregate(lambda x: np.std(x) / ??? * 1.96)
std in numpy me dará o desvio padrão ignorando os valores NaN, mas eu preciso dividir isso pela raiz quadrada do tamanho do grupo ignorando NaNs para obter o erro padrão.
Qual é a maneira mais fácil de calcular o erro padrão ao ignorar os NaNs?