【发布时间】:2022-11-05 02:26:13
【问题描述】:
我有一个包含日期时间数据的数据框:
- Start_time: eg(2013-09-21 00:14:00) - 任务开始的时间戳
- End_time: eg(2013-09-22 11:04:00) - 任务结束的时间戳
- Time_diff:eg(0 days 06:07:00) - 任务花费的时间。
我想绘制时间事件开始和结束的直方图,而不考虑日期(所以只有 24 时钟)。
我曾尝试使用:
df['Start_time'].dt.time
只是得到时间和情节。 但是,之后我无法将时间戳(现在是对象)放入 20 个容器中。
这就是我想要得到的,x 轴上 24 小时的图,以及 y 的开始时间和结束时间的分箱分布
这是代码
from random import randrange
import datetime
import pandas as pd
import plotly.express as px
# make the EXAMPLE dataset
startDate = datetime.datetime(2013, 9, 20,13,00)
start_lst = []
end_lst = []
for i in range(200):
start_time= startDate + datetime.timedelta(hours=randrange(23), minutes= randrange(60))
end_time = start_time + datetime.timedelta(hours=randrange(2,7), minutes= randrange(60))
startDate = startDate + datetime.timedelta(days=randrange(4))
start_lst.append(start_time)
end_lst.append(end_time)
df = pd.DataFrame({'Start_time': start_lst,
'End_time': end_lst
})
df['Time_diff'] = df['End_time']-df['Start_time']
#start of code
#tried just using histogram, but sicne the date changes, it wont plot over 24hours
fig = px.histogram(df, x=['Start_time', 'End_time'], nbins=20)
fig.show()
#so tried removing the date part, and just leaving time, however now it wont properly bin
df['Start_time_nodate'] = df['Start_time'].dt.time
df['End_time_nodate'] = df['End_time'].dt.time
fig = px.histogram(df, x=['Start_time_nodate', 'End_time_nodate'], nbins=20)
fig.show()
【问题讨论】:
标签: python pandas datetime time