In [122]:
df['NewColumn'] = np.where( (df.ICD.str.contains(r'313.2|414.2').astype(int)) & ( df['Date1'] > df['Date2'] ), 2 ,
np.where( df.ICD.str.contains(r'313.2|414.2').astype(int), 1, 0 ) )
df
Out[122]:
PatientID Date1 Date2 ICD NewColumn
0 1234 2010-12-14 2010-12-12 313.2,414.2,228.1 2
1 3213 2010-08-02 2012-09-05 232.1,221.0 0
我试图在else块中调用getSequenceDataWithPO。然而,当它到达else阻止它时,它不会执行该方法。我做错了什么?
答案 0 :(得分:0)
if
,else if
和else
语句应该被认为是这样的:
if
:如果满足以下条件,则执行这些命令
else if
:否则,如果满足以下条件,则执行这些命令
else
:否则,请执行以下命令
这意味着条件语句在链中执行。一旦满足if
,else if
和else
链中的一个条件,就不会处理任何其他条件语句。由于您的else
阻止没有被执行,因此您可能已经满足之前if
或else if
条款的条件。为了检查彼此独立的两个条件,只需使用两个单独的if
语句。
例如,在下面的代码中,单词" World"和#34;!"将不会被打印,即使5大于2且4大于1:
if (5 > 2)
System.out.print("Hello, ");
else if (4 > 1)
System.out.print("World");
else
System.out.print("!");
但是,在下一个例子中,两个"你好,"和"世界"和"!"将被打印,因为这三个条件是相互独立的:
if (5 > 2)
System.out.print("Hello, ");
if (4 > 1)
System.out.print("World");
if (0 == 0)
System.out.print("!");