首页 > 解决方案 > 在 df 中的列列表中运行 for 循环

问题描述

我能够使用一个变量有效地运行逻辑回归,这给了我想要的输出

x=df['a']
y=df['outcome']

model = sm.GLM(y, x, family=sm.families.Binomial())
results = model.fit()
results.summary()

但是,当我有多个列时,我想对其进行简单的逻辑回归(我希望它们简单,而不是多变量),当我尝试通过 for 循环传递它时收到错误消息。

x=df[['a', 'b', 'c']]
y=df['outcome']

for i in x:
    model = sm.GLM(y, i, family=sm.families.Binomial())
    results = model.fit()
    results.summary()

我收到以下错误:ValueError:无法识别的数据结构:<class 'numpy.ndarray'> / <class 'str'>

如何循环生成 3 个独特的简单线性回归?

标签: pythonfor-loop

解决方案


for i in x:迭代列名而不是数据

做这个

x=df[['a', 'b', 'c']]
y=df['outcome']

for i in x:
    model = sm.GLM(y, df[i], family=sm.families.Binomial())
    results = model.fit()
    results.summary()

如果您需要保存结果,您可以将它们附加到数据结构中,例如创建model_results = []然后附加到它


推荐阅读