尝试在statsmodels python中打印多个逻辑回归

尝试在statsmodels python中打印多个逻辑回归,python,logistic-regression,statsmodels,Python,Logistic Regression,Statsmodels,我试图在statsmodels中打印一系列逻辑回归,但不确定如何将结果打印到控制台屏幕以外的其他地方。我创建了一个函数来运行回归,其中数据是数据集,其他变量是数据集中一系列虚拟变量标签的列表(我确信这不是运行这些的最有效的方法,但它是有效的,当我有5个因变量,我想用Var2中的9个虚拟变量和var3中的15个虚拟变量来运行回归时,它是有意义的): 无论如何,我正在尝试将输出打印到控制台以外的其他地方,以便保存它并获得显著的结果。我打赌答案并不难,但我对python和statsmodels不太熟悉

我试图在statsmodels中打印一系列逻辑回归,但不确定如何将结果打印到控制台屏幕以外的其他地方。我创建了一个函数来运行回归,其中数据是数据集,其他变量是数据集中一系列虚拟变量标签的列表(我确信这不是运行这些的最有效的方法,但它是有效的,当我有5个因变量,我想用Var2中的9个虚拟变量和var3中的15个虚拟变量来运行回归时,它是有意义的):

无论如何,我正在尝试将输出打印到控制台以外的其他地方,以便保存它并获得显著的结果。我打赌答案并不难,但我对python和statsmodels不太熟悉,在statsmodels文档或stackoverflow中没有看到任何明显的内容。
谢谢

照@zondo说的做并打开一个文件。然后将文件句柄作为
out
参数传递到
print

我会尝试以下方法:

with open("summary.txt", "w") as f:
    f.write(result.summary)
with open("params.txt", "w") as f:
    f.write(np.exp(result.params))

如果要写入文件而不是标准输出,可以打开文件并使用
.write()


正如@NeilG所指出的,您也可以使用
print(result.summary(),out=out)
。这几乎是
out.write(str(…)+“\n”)
的快捷方式。如果您想将
result.summary()
np.exp(result.params)
放在单独的文件中,请使用
和open(“summary”,“w”)作为摘要,open(“params”,“w”)作为参数:
并使用
summary
params
代替打开的
out
(“outfile name.txt”,“w”)as out:sys.stdout=out…
@zondo:我认为写到
sys
不是一个好主意:/@neig:没错。我甚至没有想过你说的话。只要你改变了每个
print()
调用,为什么不使用
fileobject.write(…)
而不是
print(…,out=fileobject)
?@zondo我不确定。也许可以添加一个替代答案,解释不同之处?@Neig:我已经按照你的建议进行了。在这个过程中,我意识到为什么使用
打印
更容易;)伙计-随着我对python的了解越来越多,我不断发现这么多答案是多么简单。非常感谢。
with open("summary.txt", "w") as f:
    f.write(result.summary)
with open("params.txt", "w") as f:
    f.write(np.exp(result.params))
def regression(...):
    with open("outfile") as out:
        for var in var 2:
            for var in var1:
                for var in var3:
                    ...
                    out.write(str(result.summary()) + "\n")
                    out.write(str(np.exp(result.params)) + "\n)