使用nans在df上保存回归模型预测

时间:2018-10-08 12:00:52

标签: python pandas

>>> df = pd.DataFrame({'a': [1,1,1,1,2,2,2,2], 'b': [0,0,np.nan,1,0,0,1,1], 'c': [5,5,5,np.nan,9,9,6,6]})
>>> df
   a    b    c
0  1  0.0  5.0
1  1  0.0  5.0
2  1  NaN  5.0
3  1  1.0  NaN
4  2  0.0  9.0
5  2  0.0  9.0
6  2  1.0  6.0
7  2  1.0  6.0

为了保存a〜b回归中的预测,我正在做

>>> df['pr'] = np.nan
>>> idx = df[(~df.a.isnull()) & (~df.b.isnull())].index
>>> df.loc[idx,'pr'] = sm.OLS(df.a, df.b, missing = 'drop').fit().predict()
>>> df
   a    b    c        pr
0  1  0.0  5.0  0.000000
1  1  0.0  5.0  0.000000
2  1  NaN  5.0       NaN
3  1  1.0  NaN  1.666667
4  2  0.0  9.0  0.000000
5  2  0.0  9.0  0.000000
6  2  1.0  6.0  1.666667
7  2  1.0  6.0  1.666667
  1. 这种逻辑是否存在缺陷,是否有可能导致数据错误?
  2. 有更简单的方法吗?例如,Stata是更特定于用途的,它将在找到空值时自行计算所有这些信息。

0 个答案:

没有答案
相关问题