我遇到了错误,
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'
不应该解决这个问题吗?
答案 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())