简化后,我想使用一个函数来检查行中的条件并相应地设置值:
def helper(row):
if row["A"] == "TEST":
row["B"] = "WOW"
else:
row["C"] = "NO_GO"
moddf = df.apply(helper, axis=1)
我可以使用iterrows()完成此操作,但是.apply应该更快,以便在df中遍历1M行。
答案 0 :(得分:4)
您不需要(也不应该使用)申请:
# toy data
df = pd.DataFrame({'A':['TEST','NO'],
'B' : ['A','B'],
'C' :list('12')})
s = df['A']=='TEST'
df.loc[s,'B'] = 'WOW'
df.loc[~s, 'C'] = 'NO_GO'
输出:
A B C
0 TEST WOW 1
1 NO B NO_GO