gpt4 book ai didi

python - 解析具有未知列数的 Pandas 数据框以在 statsmodels.api 中使用

转载 作者:太空宇宙 更新时间:2023-11-03 16:16:18 25 4
gpt4 key购买 nike

我想创建一个通用脚本来对多个数据集执行线性回归。每个数据集将具有相同的 y 变量(称为“SM”)和未知数量的 x 变量。如果我确切地知道哪些数据将用于回归,我就能够成功地做到这一点。例如:

import pandas
import statsmodels.api as sm
import statsmodels.formula.api as smf
from patsy import dmatrices

data = pandas.read_excel('test.xlsx')

然后,打印数据给出:

print data
SM Glass mag
SiO2 73.500 77.27 0.00
TiO2 0.233 0.15 7.37
Al2O3 11.230 11.49 0.00
FeO* 4.240 2.85 92.46
MnO 0.082 0.06 0.00
MgO 0.040 0.00 0.00
CaO 0.410 0.22 0.00
Na2O 5.630 4.58 0.00
K2O 4.620 3.38 0.00

然后我准备数据框并进行线性回归:

y, X = dmatrices('SM ~ Glass + mag', data=data, return_type='dataframe')
mod = sm.OLS(y, X)
res = mod.fit()
print res.summary()

这一切都很好。但是,我希望能够导入列数未知的 Excel 文件,这样我就可以执行以下操作:

y, X = dmatrices('SM ~ X1 + X2 + X3 + ... Xn', data=data, return_type='dataframe')

我可以解析数据框并提取各个列,但我不知道如何将它们放入进行线性回归所需的公式中。如有任何建议,我们将不胜感激!

最佳答案

看看这是否有效:

df = pd.DataFrame(np.arange(20).reshape(2, 10), columns=list('abcdefghij'))

formula = '{} ~ {}'.format(df.columns[0], ' + '.join(df.columns[1:]))

formula

'a ~ b + c + d + e + f + g + h + i + j'

关于python - 解析具有未知列数的 Pandas 数据框以在 statsmodels.api 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38927844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com