【发布时间】:2018-10-05 18:35:48
【问题描述】:
正如标题所示,我正在尝试根据具有大量 nan 值的表创建置信区间。这是我正在使用的示例。
Attendence% 2016-10 2016-11 2017-01 2017-02 2017-03 2017-04 ...
Name
Karl nan 0.2 0.4 0.5 0.2 1.0
Alice 1.0 0.7 0.6 nan nan nan
Ryan nan nan 1.0 0.1 0.9 0.2
Don nan 0.5 nan 0.2 nan nan
Becca nan 0.2 0.6 0 nan nan
作为参考,在我的实际数据框中,NaN 比没有的多,它们代表不需要显示的月份,因此将值替换为 0 会影响结果。
现在,每次我尝试对每个名称应用置信区间时,它都会返回平均值为 NaN,以及两个区间。
Karl (nan, nan, nan)
Alice (nan, nan, nan)
Ryan (nan, nan, nan)
Don (nan, nan, nan)
Becca (nan, nan, nan)
有没有办法过滤掉 NaN,所以它只应用公式而不考虑 NaN 值。到目前为止,我一直在做的事情如下:
unstacked 是我直观表示的表格。
def mean_confidence_interval(unstacked, confidence=0.9):
a = 1.0 * np.array(unstacked)
n = len(a)
m, se = np.mean(a), scipy.stats.sem(a)
h = se * scipy.stats.t.ppf((1 + confidence) / 2., n-1)
return m, m-h, m+h
answer = unstacked.apply(mean_confidence_interval)
answer
【问题讨论】: