为什么FOR循环代码可以在Linux Python上运行而不能在Anaconda中运行?

时间:2020-06-04 08:53:43

标签: python anaconda conda

我是Python编码的新手,在执行FOR循环时遇到错误。我正在尝试开发数百个简单的回归模型。 Y是因变量,X1至Xn是自变量。我想一次在一个X上回归Y并将回归结果保存在一个对象中(我稍后会检索它)。下面是可复制的代码:

import pandas as pd
import numpy as np
import statsmodels.formula.api as sm

df = pd.DataFrame(np.random.randint(low=1, high=10, size=(24, 6)),
columns=['Y', 'X1', 'X2', 'X3', 'X4', 'X5'])

list_dsn = ['v1','v2','v3','v4','v5']
list_iv = ['X1','X2','X3','X4','X5']

gbl = globals()
for i, k in zip(list_iv, list_dsn):
    gbl['output_'+k] = sm.ols('Y ~ i',data=df).fit()

但是,我遇到以下错误:

raise PatsyError(msg, origin)
PatsyError: Number of rows mismatch between data argument and i (24 versus 1)
    DR ~ i
         ^

几天前,我问了这个问题,一个用户证实了代码在她的Python 3.7 Linux (Ubuntu)上可以正常工作。我在Python 3.7.3中使用Anaconda3 2019.03版本。我使用Spyder 3.3.3

我可以知道是什么原因导致Anaconda中的FOR循环中断吗?我应该尝试其他版本的Anaconda吗?

0 个答案:

没有答案