【发布时间】:2019-12-27 20:24:09
【问题描述】:
我试图在这个 for 循环中分配变量 c 的值。
没有循环的代码可以正常工作,但是,当我添加循环时,.assign(c=lambda x:eval(b)) 部分没有分配变量 c 的值,而是创建了一个名为 ' C'。
for b,c in list(zip(file.transform,file.target_field)):
df=df.set_index(['ID','Value'])
df = (df.unstack(0).T
.assign(c=lambda x:eval(b))
.stack()
.unstack(0)).reset_index()
我尝试将代码更新为:
.assign(eval(c)=lambda x:eval(b))
但我收到错误“关键字不能是表达式”
【问题讨论】:
-
等等,为什么
df=df.set_index(['ID','Value'])在循环中?如果您在循环的第一次设置索引,它会在第二次引发错误,因为它们已经是索引 -
它在第二行代码中被取消堆叠
标签: python pandas for-loop assign