我有一个包含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
答案 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)