2016-04-12 2 views
0

У меня есть датафрейм, индексированный столбцом временной метки.Фильтрация фрейма данных на основе прошедшего времени

2011-5-5 12:11    (data...) 
2011-5-5 12:12    (data...) 
2011-5-5 12:13    (data...) 
2011-5-5 12:14    (data...) 
2011-5-5 12:15    (data...) 
2011-5-5 12:26    (data...) 
2011-5-5 12:27    (data...) 
2011-5-5 12:28    (data...) 
2011-5-5 12:36    (data...) 
2011-5-5 12:37    (data...) 

Я хочу, чтобы отфильтровать все строки, время, прошедшее с предыдущего ряда составляет более 1 минуты

Результат будет выглядеть так:

2011-5-5 12:11    (data...) 
2011-5-5 12:12    (data...) 
2011-5-5 12:13    (data...) 
2011-5-5 12:14    (data...) 
2011-5-5 12:15    (data...) 
2011-5-5 12:26    (data...) --- FILTERED (12:26 minus 12:15) = 11 minutes 
2011-5-5 12:27    (data...) 
2011-5-5 12:28    (data...) 
2011-5-5 12:36    (data...) --- FILTERED (12:36 minus 12:28) = 8 minutes 
2011-5-5 12:37    (data...) 

пс: Я знаю, что каждый раз, когда я выполнять процесс фильтрации, больше строк будет фильтроваться

ответ

5

попробовать это:

In [36]: df[df.ts - df.ts.shift(1) > pd.Timedelta('1min')] 
Out[36]: 
        ts 
5 2011-05-05 12:26:00 
8 2011-05-05 12:36:00 
Смежные вопросы