在R中处理15分钟分辨率流量时间序列:提取小时值并绘图
提取整点流量数据并绘制时间序列
针对你拥有的跨近20年、15分钟分辨率的流量时间序列,以下是用Python的pandas和matplotlib实现提取整点数据并绘图的具体步骤:
1. 合并日期与时间列
首先需要将分开的date和time列合并为一个标准的datetime类型列,这是后续时间筛选的基础:
import pandas as pd import matplotlib.pyplot as plt # 合并date和time为datetime列 df['datetime'] = pd.to_datetime(df['date'] + ' ' + df['time'])
如果你的日期或时间格式非标准,可在pd.to_datetime()中指定format参数,例如format='%Y-%m-%d %H:%M:%S',根据实际数据格式调整
2. 筛选整点数据
有两种简洁的方式筛选出整点(分钟和秒均为0)的记录:
方式一:直接匹配分钟和秒
# 筛选分钟、秒都为0的行 df_hourly = df[(df['datetime'].dt.minute == 0) & (df['datetime'].dt.second == 0)]
方式二:时间向下取整匹配
将时间戳向下取整到小时,再与原时间戳对比,相等的即为整点数据:
# 取整到小时后匹配原时间 df_hourly = df[df['datetime'] == df['datetime'].dt.floor('H')]
3. 绘制整点流量时间序列
使用matplotlib绘制处理后的时间序列,适配长周期数据的可视化需求:
plt.figure(figsize=(12, 6)) # 调整linewidth避免线条过密 plt.plot(df_hourly['datetime'], df_hourly['discharge'], linewidth=0.5) plt.title('整点流量时间序列') plt.xlabel('时间') plt.ylabel('流量') # 旋转x轴标签避免重叠 plt.xticks(rotation=45) plt.tight_layout() plt.show()
内容的提问来源于stack exchange,提问作者Valaruakar
相关产品推荐
相关产品推荐

