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

如何在PySpark/Python中按起始时间筛选DataFrame并拆分存储?

按日期拆分DataFrame为多个独立数据集

问题描述

给定如下DataFrame,需要根据start_time列的日期值,将不同日期的记录分别存入单独的DataFrame:

输入DataFrame

name      start_time
AA        2022-11-16
AAA       2022-11-15
BBB       2022-11-14

要求最终每个日期对应一个独立的DataFrame,例如2022-11-16的记录存入df1,2022-11-15存入df2,以此类推。

实现方案

以下是基于Pandas的实现代码,步骤清晰且易于扩展:

import pandas as pd

# 初始化输入DataFrame(如果是从外部读取,替换为pd.read_csv/pd.read_excel等)
df = pd.DataFrame({
    'name': ['AA', 'AAA', 'BBB'],
    'start_time': ['2022-11-16', '2022-11-15', '2022-11-14']
})

# 转换start_time为日期类型(确保日期匹配准确)
df['start_time'] = pd.to_datetime(df['start_time']).dt.date

# 获取所有唯一日期
unique_dates = df['start_time'].unique()

# 动态创建对应日期的DataFrame
for i, target_date in enumerate(unique_dates, start=1):
    # 筛选对应日期的记录
    date_df = df[df['start_time'] == target_date]
    # 将筛选结果赋值到df1、df2...这类变量中
    locals()[f'df{i}'] = date_df

# 验证输出
print("df1 内容:")
print(df1)
print("\ndf2 内容:")
print(df2)
print("\ndf3 内容:")
print(df3)

关键说明

  • 日期类型转换:将start_time转为date类型,避免因字符串格式差异导致的匹配错误
  • 动态变量创建:使用locals()根据日期顺序生成df1、df2等变量,也可以改用字典存储(如date_dfs[str(target_date)] = date_df),更方便后续批量操作
  • 扩展性:如果DataFrame中有更多日期,代码会自动生成对应数量的DataFrame,无需手动修改

输出结果

执行代码后会得到:

  • df1:包含2022-11-16的记录
  • df2:包含2022-11-15的记录
  • df3:包含2022-11-14的记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:35:22