首页 > 解决方案 > 如何在python中使用for循环创建几个熊猫框架?

问题描述

我正在尝试生成 11 个决策树模型,为此,其中一个步骤是为每个模型分配 y 值。

由于我有 11 个变量,我想自动分配每个变量。

df['P1 d'] 是一个带有 'dummies' 变量的 DataFrame 列。

X2 = df[['1_y', '2_y', '3_y', '4_y', '5_y', '6_y', '7_y', '8_y','9_y', '10_y','11_y', '12_y', '13_y', '14_y']]
for t in range(1,12):
    'y.{}'.format(t) = df[['P{} d'.format(t)]] 

错误信息是:

 File "<ipython-input-83-017c94c44d4b>", line 3
'y.{}'.format(t) = df[['P{} d'.format(t)]]
^

SyntaxError:无法分配给函数调用

我知道这可能是一件非常简单的事情,但我一直无法想出任何办法来克服这个挫折。

标签: pythonpandas

解决方案


'y.{}'.format(t)将返回一个字符串,而不是一个变量。您不能将 DataFrame 分配给字符串。

你可以做的是:

  • 使用您的 y{} 键创建一个字典
  • 将每个数据框放在一个键上
my_dict = {}
for t in range(1,12):
    key = 'y.{}'.format(t)
    my_dict[key] = df[['P{} d'.format(t)]]

如果需要,您可以使用 dict 理解


推荐阅读