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

pandas按日期区间分组求和pageviews 生成PT+3/PT+30统计列

pandas 实现文章分时段浏览量聚合统计

实现思路

  • 首先将所有日期相关字段统一转换为datetime类型,避免日期比较逻辑出错
  • 为每条浏览明细数据新增区间标记,判断当前浏览记录是否落在PT+3、PT+30的统计窗口内
  • 按聚合维度分组统计,对文章固定属性字段取首个值,对不同统计窗口的浏览量做条件求和
  • 最后调整输出列顺序,匹配要求的字段规范

完整实现代码

import pandas as pd

# 1. 预处理:统一日期字段格式
date_cols = ['Published Date', 'T+3', 'T+30', 'date']
df[date_cols] = df[date_cols].apply(pd.to_datetime)

# 2. 标记每条浏览记录所属统计窗口
# PT+3窗口:发布日期 <= 浏览日期 < T+3
df['is_pt3'] = (df['date'] >= df['Published Date']) & (df['date'] < df['T+3'])
# PT+30窗口:T+3 <= 浏览日期 < T+30(即30天内剔除前3天的部分)
df['is_pt30'] = (df['date'] >= df['T+3']) & (df['date'] < df['T+30'])

# 3. 分组聚合计算(默认按文章+国家维度聚合,匹配输出字段Country的单值要求)
result = df.groupby(['Title', 'country'], as_index=False).agg(
    **{
        'Post ID': ('Post ID', 'first'),
        'Published Date': ('Published Date', 'first'),
        'Permalink': ('Permalink', 'first'),
        'Categories': ('Categories', 'first'),
        'Author Name': ('Author Name', 'first'),
        'Total Page Views': ('pageviews', 'sum'),
        'PT+3': ('pageviews', lambda x: x[df.loc[x.index, 'is_pt3']].sum()),
        'PT+30': ('pageviews', lambda x: x[df.loc[x.index, 'is_pt30']].sum())
    }
)

# 4. 调整列顺序、重命名字段匹配输出要求
result = result[['Post ID', 'Published Date', 'Title', 'Permalink', 'Categories', 'Author Name', 'Total Page Views', 'country', 'PT+3', 'PT+30']]
result = result.rename(columns={'country': 'Country'})

样例数据计算结果说明

针对给出的3条样例数据,所有浏览记录的date均为2022-05-24、2022-05-26,晚于T+3日期2022-05-13、早于T+30日期2022-06-09,因此计算结果为:

  • 澳大利亚:Total Page Views=24,PT+3=0,PT+30=24
  • 印度:Total Page Views=36,PT+3=0,PT+30=36

注意事项

  • 日期区间默认采用左闭右开规则,避免T+3当天的浏览量被重复统计到PT+3和PT+30两个字段中,如果业务规则需要将T+3当天的浏览量计入PT+3,调整判断条件的不等号即可
  • 如果不需要分国家统计,要将同一文章所有国家的浏览量汇总,只需修改两处:
    • 移除groupby中的'country'参数
    • 在聚合逻辑中新增Country字段的拼接规则:'Country': ('country', lambda x: '|'.join(sorted(x.unique())))
  • 聚合逻辑默认同一Title对应的Post ID、发布日期、作者、分类等固定属性完全一致,如果存在同Title对应不同文章的异常数据,需要先做数据清洗,或者将Post ID也纳入分组键避免数据错位

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 23:57:19