我开发了一个粗略的方法,将时间戳舍入到前15分钟。例如,如果时间戳是8:10:00
,它将被舍入到8:00:00
然而,当它超过15分钟,它轮到前一个小时。例如,如果时间戳是8:20:00
,出于某种原因它会被舍入到7:00:00
?我将在下面列出两个例子
正确舍入:
import pandas as pd
from datetime import datetime, timedelta
d = ({
'Time' : ['8:00:00'],
})
df = pd.DataFrame(data=d)
df['Time'] = pd.to_datetime(df['Time'])
FirstTime = df['Time'].iloc[0]
def hour_rounder(t):
return (t.replace(second=0, microsecond=0, minute=0, hour=t.hour)
-timedelta(hours=t.minute//15))
StartTime = hour_rounder(FirstTime)
StartTime = datetime.time(StartTime)
print(StartTime)
输出:
08:00:00
舍入错误:
import pandas as pd
from datetime import datetime, timedelta
d = ({
'Time' : ['8:20:00'],
})
df = pd.DataFrame(data=d)
df['Time'] = pd.to_datetime(df['Time'])
FirstTime = df['Time'].iloc[0]
def hour_rounder(t):
return (t.replace(second=0, microsecond=0, minute=0, hour=t.hour)
-timedelta(hours=t.minute//15))
StartTime = hour_rounder(FirstTime)
StartTime = datetime.time(StartTime)
print(StartTime)
输出:
07:00:00
我不明白我做错了什么
用
.dt.floor('15min')
四舍五入到15分钟输出:
如果您需要分别获得最近的15分钟或接下来的15分钟invterval,那么还有
.dt.round()
和.dt.ceil()
如果minute是20,那么
minute // 15
等于1,所以减去1小时请尝试以下操作:
相关问题 更多 >
编程相关推荐