簡體   English   中英

如何將列表的多個元素傳遞給自定義函數中的參數 - Python

[英]How to pass more than one element of a list to argument in a custom function - 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM