繁体   English   中英

在statsmodel中使用OLS时出错

[英]Error using OLS in statsmodel

我遇到了错误,

IndexError: boolean index did not match indexed array along dimension 1; 
dimension is 52 but corresponding boolean dimension is 184

通过运行以下代码:

y = dat2['WaterWithdMunicipal']
X = dat2['WaterWithdIndustrial']
model = sm.OLS(y,X, data=dat2, missing='drop')
p = model.fit()
print(p.summary())

我知道这2个数组的大小不同(它们包含不同数量的NaN),但是missing = 'drop'应该解决这个问题?

missing = 'drop'将删除缺少值的行,这就是X和y长度不同的原因。

有多种填充方法,但我喜欢pandas.DataFrame.fillna

这将按预期擦除行,其中至少包含一个缺失值,并将为您提供所需的结果。

dat2 = dat2.replace('', np.NaN)
dat2 = dat2.dropna()
y = dat2['WaterWithdMunicipal']
X = dat2['WaterWithdIndustrial']
model = sm.OLS(y,X, data=dat2)
p = model.fit()
print(p.summary())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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