简体   繁体   English

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

[英]Pandas - Updating value in row based on condition with .apply()

Simplified, I would like to use a function to check a condition on a row and set the value accordingly:简化,我想使用 function 来检查一行的条件并相应地设置值:

def helper(row):
    if row["A"] == "TEST":
         row["B"] = "WOW"
     else:
         row["C"] = "NO_GO"


moddf = df.apply(helper, axis=1)

I can do this using iterrows() but.apply should be MUCH faster to iterate over 1M rows in a df.我可以使用 iterrows() 来做到这一点,但是.apply 应该更快地迭代 df 中的 1M 行。

You don't need (and shouldn't use) apply:您不需要(也不应该使用)申请:

# 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'

Output: Output:

      A    B      C
0  TEST  WOW      1
1    NO    B  NO_GO

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM