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

如何按周拆分Pandas DataFrame并保存为独立CSV文件?

按指定周区间拆分Pandas DataFrame并导出CSV

没问题,我来帮你搞定这个需求!按照你指定的10月4个固定时间段拆分数据,步骤很清晰,咱们一步步来:

1. 先把时间戳列转换成Pandas可识别的datetime类型

你的Time Stamp列是字符串格式,得先转换成datetime类型,这样才能按日期筛选。用pd.to_datetime()方法,注意匹配你数据的时间格式(日/月/年 + 时分秒毫秒):

import pandas as pd

# 假设你的原始DataFrame名为df
df['Time Stamp'] = pd.to_datetime(df['Time Stamp'], format='%d/%m/%Y %H:%M:%S:%f')

2. 按指定周区间筛选数据并保存为CSV

你要的不是自然周,是固定的日期区间,这里提供两种实现方式:

方式一:手动逐个处理(逻辑直观,适合新手)

# 第一周:10月1日-7日
week1 = df[(df['Time Stamp'].dt.date >= pd.to_datetime('2016-10-01').date()) & 
           (df['Time Stamp'].dt.date <= pd.to_datetime('2016-10-07').date())]
week1.to_csv('week1_data.csv', index=False)

# 第二周:10月8日-14日
week2 = df[(df['Time Stamp'].dt.date >= pd.to_datetime('2016-10-08').date()) & 
           (df['Time Stamp'].dt.date <= pd.to_datetime('2016-10-14').date())]
week2.to_csv('week2_data.csv', index=False)

# 第三周:10月15日-21日
week3 = df[(df['Time Stamp'].dt.date >= pd.to_datetime('2016-10-15').date()) & 
           (df['Time Stamp'].dt.date <= pd.to_datetime('2016-10-21').date())]
week3.to_csv('week3_data.csv', index=False)

# 第四周:10月22日-31日
week4 = df[(df['Time Stamp'].dt.date >= pd.to_datetime('2016-10-22').date()) & 
           (df['Time Stamp'].dt.date <= pd.to_datetime('2016-10-31').date())]
week4.to_csv('week4_data.csv', index=False)

方式二:用循环简化代码(更高效,易维护)

如果以后需要调整区间,循环的方式改起来更方便:

# 定义周数和对应的日期区间(起始日,结束日)
week_intervals = [
    (1, '2016-10-01', '2016-10-07'),
    (2, '2016-10-08', '2016-10-14'),
    (3, '2016-10-15', '2016-10-21'),
    (4, '2016-10-22', '2016-10-31')
]

for week_num, start_date, end_date in week_intervals:
    # 转换为日期格式(忽略时分秒)
    start = pd.to_datetime(start_date).date()
    end = pd.to_datetime(end_date).date()
    # 筛选对应周的数据
    week_data = df[(df['Time Stamp'].dt.date >= start) & (df['Time Stamp'].dt.date <= end)]
    # 导出为CSV,不保留Pandas索引列
    week_data.to_csv(f'week{week_num}_data.csv', index=False)
    print(f"已完成第{week_num}周数据导出:week{week_num}_data.csv")

小提示

  • index=False是为了避免把Pandas自动生成的索引列导出到CSV里,如果你需要保留索引可以去掉这个参数。
  • 如果原始数据的时间格式有变动,记得调整pd.to_datetime()里的format参数,确保转换不出错。
  • 如果数据里存在少量不在这四个区间的行(比如9月30日或11月1日),这些行会被自动忽略,要是需要处理这类数据,可以额外加判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:42:30