问题描述
我在熊猫中有以下两个数据框
   df   
   code    start_time          end_time             start    end     flag
   0      2018-08-01 06:30:00  2018-08-01 06:40:00  123      145     0
   1      2018-08-01 06:40:00  2018-08-01 06:50:00  145      150     0
   2      2018-08-01 07:10:00  2018-08-01 07:20:00  155      160     1
  df1
  code   occur_time           Ack_time               Alarm
  0      2018-08-01 06:50:00  2018-08-01 08:00:00    437           
  1      2018-08-01 06:40:00  2018-08-01 07:10:00    430          
  2      2018-08-01 07:10:00  2018-08-01 07:20:00    456      
 
   
     我要检查的条件是,在df dataframe flag应该为1,然后对于该特定行, start_time应该在occur_time和Ack_time之间, Alarm应该为437 
我想要的数据框是
  df   
  code    start_time          end_time             start  end   flag  manual
  0      2018-08-01 06:30:00  2018-08-01 06:40:00  123    145   0     1
  1      2018-08-01 06:40:00  2018-08-01 06:50:00  145    150   0     0 
  2      2018-08-01 07:10:00  2018-08-01 07:20:00  155    160   1     0
 
 1楼
尝试:
df.loc[:, 'manual'] = (df1.occur_time.between(df.start_time, df.end_time) \
                       & (df1.Alarm == 437) \
                       & df.flag).apply(int)
 
  编辑:还添加了检查标志。