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

如何从DataFrame拆分date_time列并统计每日、每周访问高峰时段

Pandas统计每日及整周访问高峰时段方案

1. 提取时间维度字段

先从date_time中拆分出日期和时段(小时/自定义粒度),方便后续分组统计:

import pandas as pd

# 提取日期(格式为YYYY-MM-DD的date对象)
df['date'] = df['date_time'].dt.date

# 提取小时作为时段(若需要更细粒度,比如30分钟,见下方注释)
df['hour'] = df['date_time'].dt.hour

# 可选:按30分钟粒度划分时段(格式如"10:00"、"10:30")
# df['30min_slot'] = df['date_time'].dt.floor('30min').dt.strftime('%H:%M')

2. 统计每日访问高峰时段

通过分组聚合统计各时段访问量,再筛选出每日访问量最高的时段:

# 按日期+小时分组,统计每日各小时的访问次数
daily_hourly_visits = df.groupby(['date', 'hour']).size().reset_index(name='visit_count')

# 方式1:仅取每日第一个访问量最高的时段
daily_peak_single = daily_hourly_visits.loc[daily_hourly_visits.groupby('date')['visit_count'].idxmax()]

# 方式2:返回每日所有访问量并列最高的时段
max_daily_visits = daily_hourly_visits.groupby('date')['visit_count'].transform('max')
daily_peak_all = daily_hourly_visits[daily_hourly_visits['visit_count'] == max_daily_visits]

3. 统计整周访问高峰时段

直接按时段分组统计整周总访问量,筛选出最高的时段:

# 按小时分组,统计整周各小时的总访问次数
weekly_hourly_visits = df.groupby('hour').size().reset_index(name='total_visits')

# 方式1:仅取整周第一个访问量最高的时段
weekly_peak_single = weekly_hourly_visits.loc[weekly_hourly_visits['total_visits'].idxmax()]

# 方式2:返回整周所有访问量并列最高的时段
max_weekly_visits = weekly_hourly_visits['total_visits'].max()
weekly_peak_all = weekly_hourly_visits[weekly_hourly_visits['total_visits'] == max_weekly_visits]

说明

  • 若需要更细的统计粒度(如15分钟),只需将提取时段的代码替换为df['15min_slot'] = df['date_time'].dt.floor('15min').dt.strftime('%H:%M'),后续分组时用该字段即可。
  • groupby().size()用于统计每组的行数(即访问次数),如果你的DataFrame中一行代表一次访问,这个方法完全适用;如果一行是多条访问记录,需替换为groupby().agg({'visit_column': 'sum'}),其中visit_column是记录访问量的列名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:15:07