【问题标题】:Elapsed time in pandas time series熊猫时间序列中的经过时间
【发布时间】:2019-08-10 02:50:47
【问题描述】:

我有一个 pandas 时间序列数据框,我想知道数据框的总经过时间或数据框​​内的点。我该怎么做呢?

以下是我的数据框中的一些示例数据:

elapsed_time           Layer
1970-01-01 00:20:30    20.0
1970-01-01 00:20:31    20.0
1970-01-01 00:20:32    20.0
1970-01-01 00:20:33    20.0
1970-01-01 00:20:34    20.0
1970-01-01 00:20:35    20.0
1970-01-01 00:20:36    20.0
1970-01-01 00:20:37    20.0
1970-01-01 00:20:38    20.0
1970-01-01 00:20:39    20.0
1970-01-01 00:20:40    20.0
1970-01-01 00:20:41    20.0
1970-01-01 00:20:42    20.0
1970-01-01 00:20:43    20.0
1970-01-01 00:20:44    21.0
1970-01-01 00:20:45    21.0
1970-01-01 00:20:46    21.0
1970-01-01 00:20:47    21.0
1970-01-01 00:20:48    21.0
1970-01-01 00:20:49    21.0
1970-01-01 00:20:50    21.0
1970-01-01 00:20:51    21.0
1970-01-01 00:20:52    21.0
1970-01-01 00:20:53    21.0
1970-01-01 00:20:54    21.0
1970-01-01 00:20:55    22.0
1970-01-01 00:20:56    22.0
1970-01-01 00:20:57    22.0
1970-01-01 00:20:58    22.0
1970-01-01 00:20:59    22.0
1970-01-01 00:21:00    22.0
1970-01-01 00:21:01    22.0
1970-01-01 00:21:02    22.0
1970-01-01 00:21:03    22.0
1970-01-01 00:21:04    22.0

例如,我想知道第 21 层花了多长时间。有没有简单的方法或函数来获取索引的经过时间?当elapsed_time 是数据框的一部分时,我这样做没有问题,但是当它是索引时我无法让它工作。

【问题讨论】:

    标签: python-3.x pandas time-series


    【解决方案1】:

    最简单的方法是重置索引,以便将时间戳作为 group by 的列访问:

    res = df.reset_index().groupby('Layer')['elapsed_time'].agg(['min', 'max'])  
    res['max'] - res['min']
    

    如果您知道您的数据已排序,您也可以使用firstlast

    【讨论】:

    • 感谢您的提示,但当我的时间数据是索引时,这无济于事。我不明白如何从索引中获取经过的时间。
    猜你喜欢
    • 2021-05-30
    • 2018-06-26
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 2020-08-20
    相关资源
    最近更新 更多