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

如何统计每日各时段房间在馆人数?(支持R/Python/Excel/PowerBI)

解决方案:按15分钟间隔统计房间实时在馆人数

问题背景

我需要统计每日不同时段内房间中的在馆人数,当有人员离开房间时需实时更新计数。核心需求是统计时间区间的重叠次数,且需按每15分钟的间隔进行检查,数据集以15分钟间隔记录人员的完整停留时长。我可熟练使用R、Python、Excel及PowerBI工具,寻求任一工具的解决方案。

数据集示例

IDDateStart TimeEnd Time
1111109/01/2109001700
2222209/01/2110001300
3333309/01/2109001200
4444409/02/2109001700
5555509/02/2112001500
6666609/02/2109451400
7777709/02/2110001230
8888809/02/2109001445
9999909/02/2113001700

可行解决方案

R语言方案(实际采用)

经过测试,Langtang提供的R语言方案高效且贴合需求,我在项目中采用了近似的实现方式。核心逻辑是先将时间转换为标准datetime格式,再按日期分组计算每个时间点的区间重叠次数:

library(data.table) 
# 转换为data.table格式,并创建datetime类型的sdate和edate列
setDT(dt)[ ,c("sdate","edate"):=lapply(.SD, \(x) lubridate::mdy_hm(paste(Date,x))), .SDcols = c("Start Time", "End Time") ]
# 按日期分组,计算每个结束时间点对应的在馆人数,最后清理临时列
dt[, in_room:=sapply(edate, \(x) sum(sdate<x & edate>x)), by=Date] [,`:=`(sdate=NULL, edate=NULL)]

其他工具思路参考

  • Python:可以借助pandas库处理时间数据,先生成按15分钟间隔排列的时间序列,再针对每个时间点统计与之重叠的停留区间数量。
  • Excel:可通过Power Query生成15分钟间隔的时间轴,再用COUNTIFS函数统计每个时间点的在馆人数;也可使用数组公式直接计算区间重叠次数。
  • PowerBI:先创建包含15分钟间隔的日期表,再编写DAX公式,通过筛选每个时间点对应的有效停留区间来统计人数。

致谢

感谢Langtang和Maël提供的有效解决方案!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 19:47:31