使用for循环,跨多个pandas列运行模型,并使用模型输出创建新列

时间:2017-08-14 21:25:43

标签: python pandas dataframe

对于我的数据框中的4列,我想在每个列上运行一个模型,并将结果作为4个新列附加到原始数据框。

我目前有以下内容:

materials = ['var1', 'var2', 'var3', 'var4']
materials_new= ['found_new', 'walls_new', 'roof_new', 'floor_new']

for i, j in zip(materials, materials_new):
    df["%s"]=mlb.inverse_transform(grid_search_rf.predict(df[i])) % j 

然而,这产生了错误,“%:'不支持的操作数类型为%:'list'和'str'”。

有关如何使用for循环和列表创建新数据框列名的任何建议都会很棒。

旁注:我可以在4列上单独运行模型以在df中创建新列,因此我不相信我的错误与模型有关。在某些时候,我将用12+列重复这个练习,所以我试图用循环方法来实现这个。

谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

for i, j in zip(materials, materials_new):
    df[j]=mlb.inverse_transform(grid_search_rf.predict(df[i]))