如何将列表中的多个元素传递给自定义函数中的参数-Python

如何将列表中的多个元素传递给自定义函数中的参数-Python,python,pandas,statsmodels,Python,Pandas,Statsmodels,我创建了一个函数,它是statsmodels包的统计回归函数的包装器。 我可以将一个因变量和一个自变量无误地传递给参数。当我试图传递多个列(自变量)时,就会出现问题,例如exog=['indvar1','indvar2'] 我已尝试将数据框列转换为列表 pred = df.columns.tolist() pred = df.columns.values.tolist() 但我还是犯了同样的错误 The error is : KeyError: "None of [Index([('TARP'

我创建了一个函数,它是statsmodels包的统计回归函数的包装器。 我可以将一个因变量和一个自变量无误地传递给参数。当我试图传递多个列(自变量)时,就会出现问题,例如exog=['indvar1','indvar2'] 我已尝试将数据框列转换为列表

pred = df.columns.tolist()
pred = df.columns.values.tolist()
但我还是犯了同样的错误

The error is : KeyError: "None of [Index([('TARP', 'Lehman', 'Recovery_Act', 'T10Y2Y', 'DFF')], dtype='object')] are in the [columns]"
此功能:

Bob1 = sect_arma1.cv(model_data,endog ='Technology',exog = pred)
根据错误描述,此行出现内部故障:

280 --> exog = X[[exog]][1:Train_size]

注意,endog参数不会失败,因为一个引用的变量起作用,例如“Technology”

使用下面描述的适合您需要的任何方法。对于下面的所有示例,我将使用此解决方案结尾处生成的虚拟数据

获取列名列表: 您可以通过
df.columns.tolist()
获得列名列表

df.columns.tolist()
输出

['x', 'y']
array([[ 18, 120],
       [ 20, 110],
       [ 22, 120],
       [ 25, 135]])
[18, 20, 22, 25]
    x    y
0  18  120
1  20  110
2  22  120
3  25  135
以numpy数组的形式获取数据: 您可以通过numpy数组获取数据,如下所示

df.to_numpy()
输出

['x', 'y']
array([[ 18, 120],
       [ 20, 110],
       [ 22, 120],
       [ 25, 135]])
[18, 20, 22, 25]
    x    y
0  18  120
1  20  110
2  22  120
3  25  135
以列表形式获取列的数据: 您可以按如下列表获取某列的数据

df['x'].tolist()
输出

['x', 'y']
array([[ 18, 120],
       [ 20, 110],
       [ 22, 120],
       [ 25, 135]])
[18, 20, 22, 25]
    x    y
0  18  120
1  20  110
2  22  120
3  25  135

虚拟数据 让我们先做一些虚拟数据来解释一些事情

将熊猫作为pd导入
将numpy作为np导入
df=pd.DataFrame({'x':[18,20,22,25],'y':[120110120135]})
打印(df)
输出

['x', 'y']
array([[ 18, 120],
       [ 20, 110],
       [ 22, 120],
       [ 25, 135]])
[18, 20, 22, 25]
    x    y
0  18  120
1  20  110
2  22  120
3  25  135

想一个方法让人们可以复制你的问题,然后给出解决方案。给出一些示例数据。然后用最少的代码使用statsmodel执行某些操作(因为您提到了它),然后显示错误。我最近最喜欢的stackoverflow页面:。强烈推荐!不要使用
.values
。我们没有您的代码的其余部分(您可能应该纠正这一点),但我的猜测是它非常不规范。此外,变量和函数名应遵循带有下划线的
小写形式。