[英]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.