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

如何使用Pandas查询最近6个月的position数据

Pandas提取最近6个月position数据方案

你的需求无需用groupby即可实现,单纯过滤的话直接走时间布尔索引更高效,你提到的df["date"].dt.month用法存在跨年匹配缺陷,不推荐直接用来做时间筛选。完整实现步骤如下:

  • 第一步:将date列转换为datetime格式,确保支持时间运算
    代码:df['date'] = pd.to_datetime(df['date'])
  • 第二步:计算6个月前的时间阈值
    以数据集内最新日期为基准的代码:six_months_cutoff = df['date'].max() - pd.DateOffset(months=6)
    以当前系统时间为基准的代码:six_months_cutoff = pd.Timestamp.now() - pd.DateOffset(months=6)
  • 第三步:过滤时间范围提取position列
    代码:recent_6m_position = df.loc[df['date'] >= six_months_cutoff, 'position']

如果你后续需要按月份对position做分组统计(比如每月职位数量、去重数等),才需要用到groupby,示例代码如下:

# 先过滤时间范围,再生成月份列做分组
df_recent = df[df['date'] >= six_months_cutoff].copy()
df_recent['year_month'] = df_recent['date'].dt.to_period('M')
# 按月份统计职位数,可替换为你需要的聚合逻辑
monthly_position_stats = df_recent.groupby('year_month')['position'].count()

注意事项

  • 直接用df['date'].dt.month筛选会导致跨年数据匹配错误,比如2024年1月往前推6个月包含2023年8-12月,这些月份的数值都大于1,直接按dt.month <= 当前月筛选会漏掉全部跨年数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:06:04