【发布时间】:2021-06-10 12:34:46
【问题描述】:
以下代码在 SAS 中创建名为“已标记”的列:
Case When t3.Proportion=. then case when t3.'Standardised proportion'n >t1.SigmaMultiple Then 1 else 0
End
Else
Case When t3.Proportion=. and abs(t3.'Standardised proportion'n) > t1.SigmaMultiple Then 1 Else 0
End
End
我正在尝试在 python 中复制它,通常我会编写一个条件代码,但是嵌套的 Case when aspect 让我感到困惑。
我试过但似乎不匹配的代码:
conditions =[
((dfSigmamissing['Proportion'] == 0) & (dfSigmamissing['SP'] > dfSigmamissing['SigmaMultiple'])),
((dfSigmamissing['Proportion'] == 0) & (dfSigmamissing['SP'] < dfSigmamissing['SigmaMultiple'])),
((dfSigmamissing['SP'].abs() > (dfSigmamissing['SigmaMultiple'])))
]
choices = [1,0,1]
dfSigmamissing['Flagged'] = np.select(conditions, choices, default=0)
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
嗨@AndrewK,我不熟悉SAS,但我试图写一个答案和解释。不过,不确定输出是否与 SAS 的输出匹配。你能确认它是否匹配吗?我可能理解错了。
标签: python if-statement conditional-statements case case-when