python - 如何将列表的多个元素传递给自定义函数中的参数 - Python
问题描述
我创建了一个函数,它是 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 参数不会失败,因为引用的变量有效,例如“技术”
解决方案
使用下面描述的适合您需要的任何方法。对于下面的所有示例,我将使用在此解决方案结束时制作的虚拟数据。
获取列名列表:
您可以通过 获取列名列表
df.columns.tolist()
。
df.columns.tolist()
输出:
['x', 'y']
将数据作为 numpy 数组获取:
您可以按如下方式获取数据一个 numpy 数组。
df.to_numpy()
输出:
array([[ 18, 120],
[ 20, 110],
[ 22, 120],
[ 25, 135]])
以列表的形式获取列的数据:
您可以将某一列的数据作为列表获取,如下所示。
df['x'].tolist()
输出:
[18, 20, 22, 25]
虚拟数据
让我们先制作一些虚拟数据来解释一些事情。
import pandas as pd
import numpy as np
df = pd.DataFrame({'x': [18,20,22,25], 'y': [120,110,120,135]})
print(df)
输出:
x y
0 18 120
1 20 110
2 22 120
3 25 135
推荐阅读
- javascript - Javascript - 使用 javascript 将标签与输入相关联
- ios - 为 indexPath 获取 didSelectItemAt 上的值并将其添加到委托/协议以填充标题单元格
- javascript - Wordpress 无法从 ajax 请求中获取_current_user_id()
- django - 无效的块标签:“edit_url”,预期为“空”或“endfor”。您是否忘记注册或加载此标签?
- sql - 在 SQL 中的模式上删除表的权限
- symfony - 如何在没有实际注入的情况下访问 Symfony 4 中的依赖注入容器?
- spring - Spring Data JPA - findByAlias 与 findUserByAlias - 两者都有错误
- neo4j - 如何在NEO4J中设置节点ID的起始索引
- php - WooCommerce 订单状态挂钩未触发
- azure - Azure PaaS 用于存储微服务的集中式日志数据