开发者社区> 问答> 正文

Pandas时间索引DataFrame按时差分组

我有一个时间索引的DataFrame看起来像这样:

>>> df
                             A
index
2019-07-13 13:01:27.100      1
2019-07-13 13:01:27.674      2
2019-07-13 13:01:28.233      4
2019-07-13 13:01:28.534      1
2019-07-13 13:01:29.005      6
2019-07-13 13:01:29.732      7
2019-07-13 13:01:35.353      1
2019-07-13 13:01:35.547      9
2019-07-13 13:01:36.125      2
2019-07-13 13:01:36.626      3
2019-07-13 13:01:37.046      4
2019-07-13 13:01:37.734      7
2019-07-13 13:01:43.156      4
2019-07-13 13:01:43.523      6
2019-07-13 13:01:44.291      2
2019-07-13 13:01:44.784      5
2019-07-13 13:01:50.046      3
2019-07-13 13:01:50.563      8
2019-07-13 13:01:51.912      5

我希望有一个分组,其中所包含的数据点相隔不超过5秒。例如,第一组从13:01:27.100到13:01:29.732,第二组从13:01:35.353到13:01:37.734,依此类推...

是否有针对大型数据集的快速方法?

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 20:35:57 454 0
1 条回答
写回答
取消 提交回答
  • 通常是在diffgroupby的帮助下完成的:

    df['group'] = df.index.to_series().diff().gt('5sec').cumsum()
    

    输出:

                             A  group
    index                            
    2019-07-13 13:01:27.100  1      0
    2019-07-13 13:01:27.674  2      0
    2019-07-13 13:01:28.233  4      0
    2019-07-13 13:01:28.534  1      0
    2019-07-13 13:01:29.005  6      0
    2019-07-13 13:01:29.732  7      0
    2019-07-13 13:01:35.353  1      1
    2019-07-13 13:01:35.547  9      1
    2019-07-13 13:01:36.125  2      1
    2019-07-13 13:01:36.626  3      1
    2019-07-13 13:01:37.046  4      1
    2019-07-13 13:01:37.734  7      1
    2019-07-13 13:01:43.156  4      2
    2019-07-13 13:01:43.523  6      2
    2019-07-13 13:01:44.291  2      2
    2019-07-13 13:01:44.784  5      2
    2019-07-13 13:01:50.046  3      3
    2019-07-13 13:01:50.563  8      3
    2019-07-13 13:01:51.912  5      3
    

    回答来源:stackoverflow

    2020-03-24 20:36:04
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
中文:即学即用的Pandas入门与时间序列分析 立即下载
即学即用的Pandas入门与时间序列分析 立即下载
低代码开发师(初级)实战教程 立即下载