如何在Python) 中统计和绘制间隔时间序列数据(每小时)?

How to Count and Plot Interval Time Series Data (Hourly) in Python)?

我有意外时间序列数据 (YYYY-MM-DD HH:MM:SS。我可以根据工作日、年份、小时计算所有数据,但我试图计算 8 到 17 小时之间的数据。此外,想要绘制并显示计数范围为 8-10、10-12、12-13、13-15、15-17。

我的代码;

df = pd.read_excel("C:/Users/gokhankazar/Desktop/Accident Times/Accident_Time-Series.xlsx")
df["Hour"] = df.Datetime.dt.hour
df.Hour.value_counts().sort_index().plot(marker='o', linestyle='-')
plt.xlabel('Hours', fontsize=10)
plt.ylabel("Number of Accident", fontsize= 10)
plt.show()

我得到如下图 My figure that I got

但是如何更改绘图中的轴范围。

我也有平日图一样 WeekDay figure

我想在 x 轴上写星期一而不是“0”,星期日而不是“6”以及所有其他日子

我的日期时间列为(总共 268000 行)并且只是根据时间序列数据计算事故事件

18.05.2015  09:00:00
18.05.2015  15:00:00
18.05.2015  14:14:00
18.05.2015  09:00:00
.
.
.

您需要每 2 小时对数据进行一次分组,并为绘图设置适当的刻度。

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

df = pd.DataFrame({'date': ['18.05.2015 09:00:00','18.05.2015 15:00:00', '18.05.2015 14:14:00', '18.05.2015 11:00:00']})

# convert to datetime
df['date'] = pd.to_datetime(df['date'])
# group time every 2h
df = df.groupby(df.date.dt.floor('2H')).count()

# plot data
fig, ax1 = plt.subplots()
ax1.set_xticks(np.arange(8, 15, 2))
ax1.set_xticklabels(['8-10', '10-12', '12-14', '14-16'])
plt.plot(df.index.hour, df.date, '.')
plt.show()

输出: