def event_to_min_per_hour(df, event):
def hourly(start, end):
ret = [(start.floor("1h"), 60 - start.minute)]
t = start.ceil("1h")
while t <= end:
ret.append((t, 60))
t += pd.Timedelta("1h")
ret.append((end.floor("1h"), end.minute - 60))
return ret
df = df[df.event.str.contains(event)]
res = []
for i, (start, end, _) in df.iterrows():
res += hourly(start, end)
df = pd.DataFrame(res)
df.columns = ['ut_ms', event + "_mins"]
df = df.set_index('ut_ms')
df = df.resample("1h").sum().fillna(0.0)
return df
评论列表
文章目录