逐行迭代时更新pandas中的数据帧

我有一个熊猫数据框,看起来像这样(它是一个相当大的)

材料的日期试验
1092 2014-03-17美国M 528.205 2014-04-19
1093 2014-03-17美国M 528.205 2014-04-19
1094 2014-03-17美国M 528.205 2014-04-19
1095 2014-03-17美国M 528.205 2014-04-19
1096 2014-03-17美国M 528.205 2014-05-17

现在我想逐行迭代,当我遍历每一行时,ifor的值
每行中的数据可能会根据某些条件而改变,我需要查找另一个数据帧

现在,我如何在迭代时更新它。
尝试了一些没用的东西

df.iterrows()中的i行的

:
如果<某物>:
行['ifor']=x
其他:
行['ifor']=y
df.ix[i][ifor']=x

这些方法似乎都不管用。我看不到数据框中更新的值

可以使用df.set_值在循环中指定值:

df.iterrows()中i行的

:
ifor_val=某物
如果<条件>:
ifor_val=其他事物
df.设定值(i,'ifor',ifor值)

如果您不需要行值,您可以简单地迭代df的索引,但我保留了原始for循环,以防您需要这里未显示的某些内容的行值

更新

自版本0.21.0以来,df.set_value()已被弃用
您可以改用df.at():

df.iterrows()中i行的

:
ifor_val=某物
如果<条件>:
ifor_val=其他事物
df.at[i,'ifor']=ifor_val

发表评论