2015-07-22 10 views
0

Я хотел бы, чтобы удалить строки из dataframe df1, если ток Дат е между ShiftScheduledStart и ShiftScheduledEnd значения. Моя идея была ниже, но это не дает правильного результата.Удалить строки, где дата между двумя датами

df1[(df1['ShiftScheduledEnd'] < CurrentDateVar) & (CurrentDateVar < df1['ShiftScheduledStart'])] 

Что не так?

Спасибо!

+0

Привет Ананд, да на самом деле я хочу, и, но, если я заменю и с и возвращает: значение истинности серии неоднозначно. Используйте a.empty, a.bool(), a.item(), a.any() или a.all(). – F1990

+0

@AnandSKumar Нет, вам нужно использовать побитовые '&' с массивами, я думаю, что OP хочет 'df1 [(df1 ['ShiftScheduledEnd']> CurrentDateVar) & (CurrentDateVar EdChum

+1

Можете ли вы опубликовать данные, возможно, ваше состояние никогда не удовлетворено – EdChum

ответ

0

Я не знаю, что вы ожидали, но ни один из ваших строк не удовлетворяет ваше состояние:

In [7]: 

t="""ShiftScheduledEnd,ShiftScheduledStart 
16-5-2015 14:30,16-5-2015 6:00 
13-7-2015 22:00,13-7-2015 14:00 
13-7-2015 22:30,13-7-2015 14:00 
13-7-2015 22:00,13-7-2015 14:00""" 
df1 = pd.read_csv(io.StringIO(t), parse_dates=[0,1]) 
print(df1) 
CurrentDateVar = pd.to_datetime('14-7-2015 23:45') 
CurrentDateVar 
    ShiftScheduledEnd ShiftScheduledStart 
0 2015-05-16 14:30:00 2015-05-16 06:00:00 
1 2015-07-13 22:00:00 2015-07-13 14:00:00 
2 2015-07-13 22:30:00 2015-07-13 14:00:00 
3 2015-07-13 22:00:00 2015-07-13 14:00:00 
Out[7]: 
Timestamp('2015-07-14 23:45:00') 
In [8]: 

df1[(df1['ShiftScheduledStart'] < CurrentDateVar) & (df1['ShiftScheduledEnd'] > CurrentDateVar)] 
Out[8]: 
Empty DataFrame 
Columns: [ShiftScheduledEnd, ShiftScheduledStart] 
Index: [] 
+0

Спасибо, я вижу это сейчас ... – F1990

Смежные вопросы