Я пытаюсь реализовать логику if-elif или if-else в python при работе с фреймом данных.Я испытываю трудности при работе с несколькими столбцами.
образец фрейма данных
df=pd.DataFrame({"one":[1,2,3,4,5],"two":[6,7,8,9,10], "name": 'a', 'b', 'a', 'b', 'c'})
Если моя логика if-else основана только на одном столбце - я знаю, как это сделать.
df['one'] = df["one"].apply(lambda x: x*10 if x<2 else (x**2 if x<4 else x+10))
Но я хочу изменить столбец «один» на основе значений столбца «два» - и я чувствую, что он будет примерно таким -
lambda x, y: x*100 if y>8 else (x*1 if y<8 else x**2)
Но я не уверенкак указать второй столбец.Я пробовал таким образом, но, очевидно, это неправильно
df['one'] = df["one"]["two"].apply(lambda x, y: x*100 if y>8 else (x*1 if y<8 else x**2))
Вопрос 1 - какой будет правильный синтаксис для приведенного выше кода?
Вопрос 2 -Как реализовать приведенную ниже логику, используя лямбду?
if df['name'].isin(['a','b']) df['one'] = 100 else df['one'] = df['two']
Если я напишу что-то вроде x.isin (['a', 'b']), это не сработает.