在else中调用方法但不工作

时间:2016-01-05 15:15:01

标签: java

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阻止它时,它不会执行该方法。我做错了什么?

1 个答案:

答案 0 :(得分:0)

ifelse ifelse语句应该被认为是这样的:

if如果满足以下条件,则执行这些命令

else if否则,如果满足以下条件,则执行这些命令

else否则,请执行以下命令

这意味着条件语句在链中执行。一旦满足ifelse ifelse链中的一个条件,就不会处理任何其他条件语句。由于您的else阻止没有被执行,因此您可能已经满足之前ifelse 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("!");