对于我的数据框中的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+列重复这个练习,所以我试图用循环方法来实现这个。
谢谢!
答案 0 :(得分:0)
试试这个:
for i, j in zip(materials, materials_new):
df[j]=mlb.inverse_transform(grid_search_rf.predict(df[i]))