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

如何用Python自动化提取多日期条目大数据集中过去7天的所有记录?

用Python自动提取过去一周的数据集行

核心思路

通过动态计算日期范围(而非固定日期)筛选数据,利用pandas高效处理大型数据集,自动适配跨月、跨年的日期逻辑。

步骤实现

1. 依赖安装

确保安装必要的库:

pip install pandas openpyxl

2. 代码实现

import pandas as pd
from datetime import datetime, timedelta

# 1. 读取Excel数据集(替换为你的文件路径和时间列名)
# parse_dates参数自动将指定列转为datetime类型
df = pd.read_excel("large_dataset.xlsx", parse_dates=["记录日期"])

# 2. 动态计算日期范围(两种常见场景可选)
# 场景A:过去7天(从脚本运行当天往前推7天)
today = datetime.now()
one_week_ago = today - timedelta(days=7)

# 场景B:上周完整日历周(周一至周日,适用于固定周度统计)
# weekday()返回0=周一,6=周日
# last_week_monday = today - timedelta(days=today.weekday() + 7)
# last_week_sunday = last_week_monday + timedelta(days=6)

# 3. 筛选符合条件的行
# 对应场景A
filtered_df = df[(df["记录日期"] >= one_week_ago) & (df["记录日期"] <= today)]
# 对应场景B
# filtered_df = df[(df["记录日期"] >= last_week_monday) & (df["记录日期"] <= last_week_sunday)]

# 4. 保存新数据集
filtered_df.to_excel("past_week_data.xlsx", index=False)

关键细节处理

  • 日期格式兼容:若Excel日期被读取为字符串,手动指定格式转换:
    df["记录日期"] = pd.to_datetime(df["记录日期"], format="%Y/%m/%d")  # 替换为你的实际日期格式
    
  • 跨月/跨年逻辑:datetime.timedelta会自动处理月份、年份跨度,无需额外判断。
  • 超大型数据集优化:若数据集过大,分批读取处理:
    chunk_iter = pd.read_excel("large_dataset.xlsx", parse_dates=["记录日期"], chunksize=10000)
    filtered_chunks = []
    for chunk in chunk_iter:
        filtered_chunk = chunk[(chunk["记录日期"] >= one_week_ago) & (chunk["记录日期"] <= today)]
        filtered_chunks.append(filtered_chunk)
    filtered_df = pd.concat(filtered_chunks)
    

自动化执行

  • Windows:使用「任务计划程序」创建每周触发的任务,执行Python脚本。
  • Linux/macOS:使用cron添加定时任务,例如每周一凌晨运行:
    0 0 * * 1 /usr/bin/python3 /path/to/your/script.py
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:55:36