使用python从日期时间列添加时间间隔列

乌萨玛·法塔拉

嗨,我有以下数据框:

assetReference  lastPositionUpdate
TAG20   2020-07-05 00:01:06
TAG20   2020-07-05 00:03:07
TAG20   2020-07-05 00:05:14
TAG20   2020-07-05 00:07:15
TAG20   2020-07-05 00:09:22
TAG20   2020-07-05 00:11:30
TAG20   2020-07-05 00:13:31
TAG20   2020-07-05 00:15:39
TAG20   2020-07-05 00:17:47
TAG20   2020-07-05 00:19:54
TAG20   2020-07-05 00:21:55
TAG20   2020-07-05 00:24:03
TAG20   2020-07-05 00:26:11
TAG20   2020-07-05 00:28:18
TAG20   2020-07-05 00:30:27
TAG20   2020-07-05 00:32:34
TAG20   2020-07-05 00:34:43
TAG20   2020-07-05 00:36:50
TAG20   2020-07-05 00:38:58

我想添加一个与每一行关联的列,对应的时间间隔如下所示:

lastPositionUpdate   => Time interval

05/07/2020  00:01:06 => 00:00:00-00:02:00
05/07/2020  00:03:07 => 00:02:00-00:04:00
05/07/2020  00:05:14 => 00:04:00-00:06:00

时间间隔等于从00:00:00-00:00:02到00:58:00-00:00:00的2分钟

我是python的新手。你能帮我吗

克里斯·库珀

使用与您的数据相似的数据构造一个DataFrame:

import pandas as pd
df = pd.DataFrame([
        ['TAG20', '2020-07-05 00:01:06'],
        ['TAG20', '2020-07-05 00:03:07'],
        ['TAG20', '2020-07-05 00:05:14'],
        ['TAG20', '2020-07-05 00:07:15'],
        ['TAG20', '2020-07-05 00:09:22'],
        ['TAG20', '2020-07-05 00:11:30'],
    ],
    columns=['_source.tag.assetReference', '_source.tag.location.lastPositionUpdate']
)
df.loc[:, '_source.tag.location.lastPositionUpdate'] = pd.to_datetime(df['_source.tag.location.lastPositionUpdate'])

我们可以添加一个间隔如下的列:

temp = df.assign(
    low=df['_source.tag.location.lastPositionUpdate'].dt.floor('2min'), 
    high=df['_source.tag.location.lastPositionUpdate'].dt.ceil('2min')
)
df.loc[:, 'interval'] = temp.apply(lambda row: pd.Interval(row['low'], row['high']), axis=1)

这可能不是最快的方法,但是它确实起作用:

    _source.tag.assetReference  _source.tag.location.lastPositionUpdate interval
0   TAG20   2020-07-05 00:01:06 (2020-07-05, 2020-07-05 00:02:00]
1   TAG20   2020-07-05 00:03:07 (2020-07-05 00:02:00, 2020-07-05 00:04:00]
2   TAG20   2020-07-05 00:05:14 (2020-07-05 00:04:00, 2020-07-05 00:06:00]
3   TAG20   2020-07-05 00:07:15 (2020-07-05 00:06:00, 2020-07-05 00:08:00]
4   TAG20   2020-07-05 00:09:22 (2020-07-05 00:08:00, 2020-07-05 00:10:00]
5   TAG20   2020-07-05 00:11:30 (2020-07-05 00:10:00, 2020-07-05 00:12:00]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章