Python 使用for循环,跨多个列运行模型,并使用模型输出创建新列
对于我的数据框架中的4列,我希望对每一列运行一个模型,并将结果作为4个新列附加到原始数据框架中 我目前的情况如下:Python 使用for循环,跨多个列运行模型,并使用模型输出创建新列,python,pandas,dataframe,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(g
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
但是,这会产生错误,“TypeError:不支持%的操作数类型:'list'和'str'”
关于如何使用for循环和列表创建新的数据框列名的任何建议都将非常有用
旁注:我能够在4列上单独运行模型,以在df中创建新列,因此我不认为我的错误与模型有关。在某个时候,我会用12个以上的列重复这个练习,所以我尝试使用这个for循环方法
谢谢 试试这个:
for i, j in zip(materials, materials_new):
df[j]=mlb.inverse_transform(grid_search_rf.predict(df[i]))
试试这个:
for i, j in zip(materials, materials_new):
df[j]=mlb.inverse_transform(grid_search_rf.predict(df[i]))
你试过了吗:
df[j]=mlb.inverse\u transform(grid\u search\u rf.predict(df[i])
这就是解决方案,谢谢!你试过了吗:df[j]=mlb.inverse\u transform(grid\u search\u rf.predict(df[i])
这就是解决方案,谢谢!