首页 > 解决方案 > 创建一天中时间的直方图

问题描述

具有以下DF:

    time_of_day
0   19:52:48
1   11:05:30
2   14:08:15
4   19:20:02
5   19:30:26
13  01:32:35
14  10:37:55
21  08:35:08
22  14:10:12
23  20:14:10

是否可以使用 pandas 绘制 24 小时的直方图?

标签: pythonpandas

解决方案


我会pd.cut(right=False)用来产生一致数量的垃圾箱。这大致是你想要的吗?

直方图数据

df["time_of_day"] = pd.to_datetime(df["time_of_day"])
sr = df.groupby(pd.cut(df["time_of_day"].dt.hour, range(24+1), right=False)).size()

print(sr)
time_of_day
[0, 1)      0
[1, 2)      1
[2, 3)      0
[3, 4)      0
[4, 5)      0
[5, 6)      0
[6, 7)      0
[7, 8)      0
[8, 9)      1
[9, 10)     0
[10, 11)    1
[11, 12)    1
[12, 13)    0
[13, 14)    0
[14, 15)    2
[15, 16)    0
[16, 17)    0
[17, 18)    0
[18, 19)    0
[19, 20)    3
[20, 21)    1
[21, 22)    0
[22, 23)    0
[23, 24)    0
dtype: int64

阴谋

又快又脏

sr.to_frame().plot.bar(legend=False)
plt.show()

伊姆古尔


推荐阅读