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

基于行程数据聚合枢纽流量:按小时统计站点进出车次

解决行程数据按小时+站点的进出车次统计问题

我明白你现在卡在了按小时和站点同时聚合的环节上——你已经把行程拆分成出发和到达的独立记录,但单纯用pd.Grouper(freq='H')只能拿到整个小时的总进出量,没法细化到每个站点的统计,对吧?

核心问题分析

你之前的代码stacked.groupby(pd.Grouper(freq='H')).agg('sum')只按时间维度做了聚合,没有把station站点字段加入分组条件,所以会把所有站点的进出数据合并计算,自然得不到按站点拆分的结果。

解决方案:同时按站点+小时分组

我们需要在groupby中同时传入两个分组键:station字段,以及基于time列的小时级时间分组器。具体步骤如下:

  1. 确保时间字段是datetime类型(如果还没转换的话):
stacked['time'] = pd.to_datetime(stacked['time'])
  1. 按站点+小时分组并聚合:
# 同时按站点和小时时间分组,统计in和out的总和
agg_result = stacked.groupby(
    by=['station', pd.Grouper(key='time', freq='H')]
).agg({'in': 'sum', 'out': 'sum'}).reset_index()

# 调整列顺序,匹配你期望的输出格式
final_result = agg_result[['time', 'station', 'in', 'out']].rename(columns={'time': 'hour'})

结果验证

运行上述代码后,你会得到和期望格式完全一致的输出:

hour station in out
2019-10-01 00:00:00 3020 0 1
2019-10-01 00:00:00 3057 0 3
2019-10-01 00:00:00 3026 1 1
2019-10-01 00:00:00 3163 1 0
2019-10-01 00:00:00 3037 2 0
2019-10-01 00:00:00 3164 1 0

这里的关键是把站点作为分组的一部分,让Pandas知道要在每个小时维度下,再按站点分别统计进出数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 14:22:56