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

如何按周对DataFrame进行分组?附相关数据集详情

按周分组DataFrame的技术实现方案

没问题,我来帮你梳理针对这两个DataFrame的按周分组实现方案,分步骤说明,适配不同的需求场景:

前提准备:确保日期是datetime类型

不管是用索引还是列存储日期,首先得把它转换成pandas能识别的datetime格式,不然分组逻辑会出错:

  • 针对第一个以Date为索引的DataFrame(含Articles列):
    import pandas as pd
    # 假设你的第一个DataFrame命名为df_articles
    df_articles.index = pd.to_datetime(df_articles.index)
    
  • 针对第二个Date为普通列的DataFrame(含Price列):
    # 假设你的第二个DataFrame命名为df_price
    df_price['Date'] = pd.to_datetime(df_price['Date'])
    

核心分组方案:两种常用方法

方法1:用resample(适合日期是索引的场景)

resample是pandas专门为时间序列设计的分组工具,用法简洁直观:

针对Articles DataFrame的分组聚合

因为你的Articles列是元组的元组,分组后通常需要合并每周的所有文本片段,或者统计条目数量:

# 合并每周所有的Articles元组(扁平化所有嵌套元组)
weekly_articles = df_articles.resample('W').agg({
    'Articles': lambda x: tuple(item for sub_tuple in x for item in sub_tuple)
})

# 或者统计每周的文章条目数量
weekly_article_count = df_articles.resample('W').size().rename('Weekly_Article_Count')

针对Price DataFrame的分组聚合

价格数据通常需要计算周均值、极值或者周最后一天的价格,示例如下:

# 先把Date设为索引
df_price.set_index('Date', inplace=True)
# 按周聚合,同时计算多种统计值
weekly_price = df_price.resample('W').agg({
    'Price': ['mean', 'max', 'min', 'last']  # 周均价、最高价、最低价、最后一天价格
})

方法2:用groupby + Grouper(适合日期是普通列的场景)

如果不想改动DataFrame的索引结构,可以用pd.Grouper指定日期列和分组频率:

# 针对Price DataFrame的分组示例
weekly_price = df_price.groupby(pd.Grouper(key='Date', freq='W')).agg({
    'Price': ['mean', 'max', 'min', 'last']
})

# 针对Articles DataFrame,若后续把索引转成了普通列,也可以用同样逻辑
# weekly_articles = df_articles.groupby(pd.Grouper(key='Date', freq='W')).agg(...)

额外调整项

  • 周起始日设置:默认freq='W'是以周日为一周的结束日,如果需要以周一为起始/结束,可以改成freq='W-MON'
  • Articles聚合的自定义需求:如果需要对合并后的文本去重,可以修改lambda函数:
    lambda x: tuple(set(item for sub_tuple in x for item in sub_tuple))
    
  • 合并两个分组结果:如果需要把每周的文章和价格数据放在一起分析,可以合并两个分组后的DataFrame:
    weekly_combined = pd.merge(weekly_articles, weekly_price, left_index=True, right_index=True)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:01:38