因为我有一个DateTime格式的列,并且想绘制一个图表,该图表将显示每小时的时间间隔,以找出用户最活跃的小时数。但是,我对如何在提取的时间和每小时时间间隔在x轴上绘制海图线图感到困惑。任何帮助将不胜感激。
日期时间列:
2019-06-16 09:50:32.716000
2019-06-16 09:50:32.716001
2019-06-16 09:50:35.374002
2019-06-16 09:50:36.032003
2019-06-16 06:41:09.959000
2019-06-16 07:04:59.880000
2019-06-16 07:05:09.925000
2019-06-16 07:05:18.680002
2019-06-16 07:05:18.676003
2019-06-16 07:06:04.646004
2019-06-16 07:06:04.646005
2019-06-16 07:06:25.354006
2019-06-16 07:06:25.353007
....
2019-06-16 07:06:28.464008
2019-06-16 07:06:28.464009
2019-06-16 07:06:37.777010
2019-06-16 07:06:37.942011
2019-06-16 07:07:05.512012
2019-06-16 07:07:13.342013
2019-06-16 05:15:38.923000
2019-06-16 05:15:45.772001
2019-06-16 05:15:51.937000
2019-06-16 05:15:57.064003
2019-06-16 05:15:57.064004
2019-06-16 05:16:07.163005
2019-06-16 05:16:07.162006
到目前为止的代码:
sns.lineplot(data=dfdays[0]['event_timestamp'].dt.hour, color="coral",
label="line")
答案 0 :(得分:0)
经过大量搜索,我找到了答案。也许这可以帮助其他人。
从数据框中提取时间:
minutes=[]
hours=[]
time=[]
minutes=dfdays[0].event_timestamp.dt.minute
hours=dfdays[0].event_timestamp.dt.hour
for i in range(len(dfdays[0])):
x=float(str(hour[i])+'.'+str(minutes[i]))
time.append(x)
计算数组中的条目:
x = np.array(time)
unique, counts = np.unique(x, return_counts=True)
与Seaborn一起绘制:
sns.lineplot(unique,counts,color="coral", label="line")
plt.xlabel('Hours')
plt.ylabel('Users count')
plt.tight_layout()
plt.show()