Pandas-使用.apply()根据条件更新行中的值

时间:2019-10-23 19:09:17

标签: python pandas loops apply

简化后,我想使用一个函数来检查行中的条件并相应地设置值:

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行。

1 个答案:

答案 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