使用for循环,跨多个pandas列运行模型,并使用模型输出创建新列
问题描述:
对于我的数据框中的4列,我想在每个列上运行一个模型,并将结果作为4列添加到原始数据帧。使用for循环,跨多个pandas列运行模型,并使用模型输出创建新列
目前我有类似下面:
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
但是由此产生的错误,“类型错误:不支持的操作数类型为%:‘名单’和‘海峡’”。
任何关于如何使用for循环和列表创建新的数据框列名的建议将会很棒。
备注:我可以在4列上单独运行模型以在df中创建新列,所以我不相信我的错误与模型有关。在某些时候,我会用12列来重复这个练习,所以我试图追求这个循环方法。
谢谢!
答
试试这个:
for i, j in zip(materials, materials_new):
df[j]=mlb.inverse_transform(grid_search_rf.predict(df[i]))
你尝试:'DF [J] = mlb.inverse_transform(grid_search_rf.predict(DF [1]))' – MaxU
,这是解决方案,谢谢! – Erin