1. ホーム
  2. python

[解決済み] if...elif...elseを含むLambda。

2023-03-24 11:25:12

質問

DataFrameのカラムにラムダ関数を適用したいのですが、ラムダ関数内でif...elif...elseを使用しています。

dfとコードはこんな感じです。

df=pd.DataFrame({"one":[1,2,3,4,5],"two":[6,7,8,9,10]})

df["one"].apply(lambda x: x*10 if x<2 elif x<4 x**2 else x+10)

明らかに、これは動作しません。ラムダにif...elif...elseを適用する方法はあるのでしょうか? どうすればリストコンパチブルで同じ結果を得ることができるでしょうか?

どのように解決するのですか?

ネスト if .. else s:

lambda x: x*10 if x<2 else (x**2 if x<4 else x+10)