![](/img/trans.png)
[英]How to apply a function fastly on the list of DataFrame in Python?
[英]How to apply a mask to a DataFrame in Python?
我的名为ds_f的数据集是一个840x57矩阵,其中包含NaN值。 我想使用线性回归模型预测变量,但是当我尝试拟合模型时,出现以下消息:“ SVD未收敛”:
X = ds_f[ds_f.columns[:-1]]
y = ds_f['target_o_tempm']
model = sm.OLS(y,X) #stackmodel
f = model.fit() #ERROR
因此,我一直在寻找将掩码应用于DataFrame的答案。 尽管我在考虑创建一个掩码以“忽略” NaN值,然后将其转换为DataFrame,但我得到的是与ds_f相同的DataFrame,但没有任何变化:
m = ma.masked_array(ds_f, np.isnan(ds_f))
m_ds_f = pd.DataFrame(m,columns=ds_f.columns)
编辑:我已经通过编写model = sm.OLS(X,y,missing ='drop')解决了问题,但是当我显示结果时出现了一个新问题,我只得到了NaN:
您正在使用statsmodels
吗? 如果是这样,您可以指定sm.OLS(y, X, missing='drop')
,以便在估算之前删除NaN
值。
或者,您可能需要考虑对缺失值进行插值,而不是丢弃它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.