【问题标题】:Filtering dataframe based on elapsed time根据经过时间过滤数据帧
【发布时间】:2016-09-07 05:59:17
【问题描述】:

我有一个由时间戳列索引的数据框。

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:我知道每次执行过滤过程,都会过滤更多的行

【问题讨论】:

    标签: python pandas dataframe filtering


    【解决方案1】:

    试试这个:

    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
    

    【讨论】:

      猜你喜欢
      • 2017-09-08
      • 1970-01-01
      • 2022-11-30
      • 1970-01-01
      • 2021-06-25
      • 2022-10-05
      • 2016-05-05
      • 2021-10-25
      • 2012-08-13
      相关资源
      最近更新 更多