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

如何自动按年份拆分涵盖1959-2003年的DataFrame?

按年份自动拆分DataFrame的实用方法

当然有高效的自动拆分方法啦!用Pandas处理这类时间维度的数据集简直是小菜一碟,给你分享两种最常用的方案:

1. 按年份分组并批量保存子数据集

如果你的DataFrame里有时间列(不管是datetime类型还是字符串格式),先把年份提取出来,再用groupby按年份分组,遍历每个组就能自动生成对应年份的子数据集了:

import pandas as pd

# 假设你的数据集是df,时间列名为'date'
# 第一步:如果时间列是字符串,先转成datetime类型
df['date'] = pd.to_datetime(df['date'])

# 第二步:提取年份列
df['year'] = df['date'].dt.year

# 第三步:按年份分组,遍历保存每个子数据集
for year, sub_df in df.groupby('year'):
    # 保存为CSV(也可以换成to_excel存成Excel文件)
    sub_df.to_csv(f"dataset_{year}.csv", index=False)
    print(f"已生成{year}年的子数据集")

2. 将子数据集存入字典,方便后续调用

如果不需要立刻保存到文件,而是想在代码里随时调用某一年的数据,可以把每个年份的子DataFrame存入字典:

# 生成以年份为键、子DataFrame为值的字典
year_data_dict = {year: sub_df for year, sub_df in df.groupby('year')}

# 示例:调用1959年的子数据集
print(year_data_dict[1959].head())

小贴士

  • 如果你的DataFrame已经有单独的year列(不是从时间列提取的),可以跳过提取年份的步骤,直接用df.groupby('year')分组。
  • 要是只想拆分特定年份(比如你之前手动筛选的1959、1969),也可以在分组后过滤,或者直接用df[df['year'].isin([1959, 1969])]提取,但自动拆分所有年份用groupby是最高效的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:12:36