繁体   English   中英

如何在Python中将掩码应用于DataFrame?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM