Например, у меня есть фрейм данных:
cond value1 value2
0 True 1 1
1 False 3 5
2 True 34 2
3 True 23 23
4 False 4 2
Я надеюсь заменить value1 на value2*2
, когда cond=True
. Итак, я хочу, чтобы результат:
cond value1 value2
0 True 2 1
1 False 3 5
2 True 4 2
3 True 46 23
4 False 4 2
Я могу добиться этого, следуя коду:
def convert(x):
if x.cond:
x.value1= x.value2*2
return x
data = data.apply(lambda x: convert(x),axis=1)
Я думаю, что это очень медленно, когда данные большие. Я пробую это по .loc
, но я не знаю, как установить значение.
Как мне добиться этого с помощью .loc
или другими простыми способами? Заранее спасибо.