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

如何无需虚拟列用Pandas按小时统计时间戳频率?

无需虚拟列,直接统计时间戳周期出现频率的方法

完全可以不用添加虚拟列,直接基于原始时间戳列表完成统计,给你两种实用的实现方式:

方法一:借助Series的resample+count()

先把时间戳列表转换成Pandas的datetime格式,再做成Series,接着用resample指定统计周期(比如'H'代表小时),最后调用count()就能直接得到每个周期内的时间戳数量:

import pandas as pd

# 示例时间戳列表,实际替换成你的数据
timestamp_list = pd.to_datetime(["2024-05-20 08:12:00", "2024-05-20 08:45:00", "2024-05-20 09:03:00"])
# 转为Series
ts_series = pd.Series(timestamp_list)
# 按小时重采样并统计数量
hourly_freq = ts_series.resample('H', on=ts_series.name).count()
print(hourly_freq)

如果直接用DatetimeIndex处理,代码可以简化成:

ts_index = pd.DatetimeIndex(timestamp_list)
hourly_freq = ts_index.to_series().resample('H').count()

方法二:用Grouper分组统计

把时间戳存入DataFrame(不用加额外列),通过pd.Grouper按时间周期分组,再用count()统计每组的行数,也就是对应周期的出现频率:

df = pd.DataFrame({'timestamp': timestamp_list})
hourly_freq = df.groupby(pd.Grouper(key='timestamp', freq='H')).count()

不管用哪种方法,都能实现按小时、天、月等任意周期的频率统计,全程不需要添加值为1的虚拟列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 00:04:59