R版ifelse语句的Python版本

Den*_*nJJ 5 python if-statement r pandas

我在学习R和一个简单的ifelse语句之后尝试学习Python.

在RI有:

df$X <- if(df$A == "-1"){-df$X}else{df$X}
Run Code Online (Sandbox Code Playgroud)

但我不确定如何在Python中实现它,我尝试过:

df['X'][df['A'] <1] = -[df['X']
df['X'][df['A'] >1] = [df['X']
Run Code Online (Sandbox Code Playgroud)

但这会导致错误,会感激一些帮助.

ayh*_*han 14

相当于np.where:

import numpy as np
np.where(df['A'] < 1, -df['X'], df['X'])
Run Code Online (Sandbox Code Playgroud)

这将检查列A中的值是否低于1.如果是,则返回相应的值乘以-1 df['X'],否则返回相应的值df['X'].

也就是说,由于链式索引,可能会引发您的错误/警告.而不是df['X'][df['A'] <1]你应该使用df.loc[df['A'] <1, 'X'].然后,您可以按照问题中显示的两个步骤执行相同的操作.