如何将列表中的多个元素传递给自定义函数中的参数-Python
我创建了一个函数,它是statsmodels包的统计回归函数的包装器。 我可以将一个因变量和一个自变量无误地传递给参数。当我试图传递多个列(自变量)时,就会出现问题,例如exog=['indvar1','indvar2'] 我已尝试将数据框列转换为列表如何将列表中的多个元素传递给自定义函数中的参数-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'
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
。我们没有您的代码的其余部分(您可能应该纠正这一点),但我的猜测是它非常不规范。此外,变量和函数名应遵循带有下划线的小写形式。