有没有人可以建议一种方法来回答同一个问题(参见链接),但是使用lambda函数: Update a dataframe in pandas while iterating row by row
答案 0 :(得分:6)
您希望apply
使用参数axis=1
,以确保传递给apply
的函数适用于每一行。
引用的问题有一个使用此循环的答案。
for i, row in df.iterrows():
if <something>:
row['ifor'] = x
else:
row['ifor'] = y
df.ix[i]['ifor'] = x
使用具有相同逻辑的lambda
df['ifor'] = df.apply(lambda row: x if something else y, axis=1)