在statsmodel中使用OLS时出错

时间:2018-07-30 00:16:43

标签: python linear-regression

我遇到了错误,

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'不应该解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

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

有不同的填写方式,但我喜欢pandas.DataFrame.fillna

答案 1 :(得分:0)

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

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())
相关问题