根据已用时间过滤数据帧

时间:2016-04-12 18:10:32

标签: python pandas dataframe filtering

我有一个由Timestamp列索引的数据框。

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...)

ps:我知道每次执行过滤过程都会过滤更多行

1 个答案:

答案 0 :(得分: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