You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中从CSV文件统计每秒/每小时/每日请求数并绘图

基于CSV请求数据生成统计图表方案

一、数据预处理

先清洗并转换CSV中的时间格式,原数据时间为YYYY.MM.DD HH:MM:SS.sss格式,需转为可被程序解析的时间类型。以下是Python实现示例:

import pandas as pd

# 读取CSV,跳过开头的注释行
df = pd.read_csv('requests.csv', comment='#', header=0, names=['type_of_r', 'date_time'])
# 转换时间格式
df['date_time'] = pd.to_datetime(df['date_time'], format='%Y.%m.%d %H:%M:%S.%f')

二、按时间粒度统计请求量

1. 每秒请求量

将时间向下取整到秒,再分组计数:

# 生成秒级时间戳
df['second'] = df['date_time'].dt.floor('S')
# 统计每秒请求数
second_counts = df.groupby('second').size().reset_index(name='request_count')

2. 每小时请求量

将时间向下取整到小时后分组:

df['hour'] = df['date_time'].dt.floor('H')
hour_counts = df.groupby('hour').size().reset_index(name='request_count')

3. 每日请求量

当前数据仅1天,结果为单条记录;后续新增多天数据时代码可直接复用:

df['day'] = df['date_time'].dt.floor('D')
day_counts = df.groupby('day').size().reset_index(name='request_count')

三、生成可视化图表

用matplotlib绘制不同粒度的统计图表:

import matplotlib.pyplot as plt

# 每秒请求量折线图
plt.figure(figsize=(12, 4))
plt.plot(second_counts['second'], second_counts['request_count'])
plt.title('每秒请求量统计')
plt.xlabel('时间')
plt.ylabel('请求数')
plt.xticks(rotation=45)
plt.show()

# 每小时请求量柱状图
plt.figure(figsize=(10, 5))
plt.bar(hour_counts['hour'].dt.strftime('%H:%M'), hour_counts['request_count'])
plt.title('每小时请求量统计')
plt.xlabel('小时')
plt.ylabel('请求数')
plt.show()

# 每日请求量柱状图
plt.figure(figsize=(6, 4))
plt.bar(day_counts['day'].dt.strftime('%Y-%m-%d'), day_counts['request_count'])
plt.title('每日请求量统计')
plt.xlabel('日期')
plt.ylabel('请求数')
plt.show()

四、实用提示

  • 若后续数据包含多天,每日统计逻辑会自动适配,无需修改代码
  • 时间格式转换需严格匹配原数据格式,避免解析报错
  • 可根据需求调整图表的尺寸、颜色、标注样式等参数

内容的提问来源于stack exchange,提问作者rrn_di

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 03:35:44