、と呼ばれるdf_atr_check:新しいデータフレームの列に基づいて、if文や他の列
Symbol Average Price ATR Quantity
SBUX 56 2 100
AAPL 150 3 -200
GOOG 700 4 300
私は名前を「メンタル停止」と私のデータフレームに新しい列を作成しようとしています。
条件は非常に単純です:数量が> 0の場合、メンタルストップ値は「平均価格」 - 「ATR」、それ以外の場合は「平均価格」+「ATR」になります。
ここではラムダ関数を使用しようとしていますが、値は返されません。私が間違っていることを教えてください。
df_atr_check["Mental Stop"] = lambda x: (df_atr_check["Average Price"] - df_atr_check["ATR Multiple"]) if df_atr_check["Quantity"] > 0 else (df_atr_check["Average Price"] + df_atr_check["ATR Multiple"])
おかげで、
...これを試してみてください。 df_atr_check ["ATR Multiple"] Trueは1に強制され、Falseになります(例:df_atr_check ["Mental Stop"] = df_atr_check ["Average Price"] +(1-2 *(df_atr_check ["Quantity"]> 0) (1-2 *(df_atr_check ["Quantity"]> 0)は、quantity> 0の場合は-1、quantity <= 0の場合は1と評価されます。 – Acccumulation