熊猫时间戳到时间范围

时间:2018-03-13 16:42:15

标签: python pandas

我有一个包含10分钟时间戳的数据框,如下所示:

import pandas as pd
import numpy as np

df = pd.DataFrame({'TIME_BIN': np.random.randint(1, 86400, size=10000)})
df['TIME_BIN'] = pd.to_datetime(df['TIME_BIN'], unit='s').dt.round('10min').dt.strftime('%H:%M:%S')

print(df)

      TIME_BIN
0     07:40:00
1     01:40:00
2     12:00:00
3     06:30:00
4     00:00:00
5     04:30:00

如何附加范围的开头(减去10)并连接以使列看起来像这样

      TIME_BIN
0     07:30:00-07:40:00
1     01:30:00-01:40:00
2     11:50:00-12:00:00
3     06:20:00-06:30:00
4     23:50:00-00:00:00
5     04:20:00-04:30:00

1 个答案:

答案 0 :(得分:1)

我认为这可以满足您的需求:

import datetime

def timerange(a):
    return str(datetime.datetime.strptime(a, '%H:%M:%S') - datetime.timedelta(minutes=10))[-8:] + '-' + a

df['TIME_BIN'] = df['TIME_BIN'].apply(timerangeange)