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

如何从单数据集的年份列筛选数据 生成各年份独立的新数据集

实现按年份生成独立DataFrame的方法

推荐你优先使用字典存储各年份的DataFrame,这种方式便于统一管理、批量遍历调用,不会污染全局变量空间,完整实现代码如下:

import os
import pandas as pd

# 你原有数据处理逻辑,注意去掉末尾筛选2011年的代码
path = r"C:\Users\krishna gupta\Downloads\Diwali\temp"
files = os.listdir(path)
b=[]
for file in files:
    df = pd.read_csv(os.path.join(path, file)) # 用os.path.join兼容不同系统路径格式
    df = df[df['SYMBOL'] == 'NIFTY']
    df = df[df['INSTRUMENT'] == 'FUTIDX']
    df['RANGE'] = df['HIGH'] - df['LOW']
    df['YEAR'] = df.TIMESTAMP.str[-4:]
    b.append(df)
df = pd.concat(b)
df = df.sort_values(['YEAR','TIMESTAMP'])
df.reset_index(drop=True, inplace=True) # 直接通过drop=True省略删除index的单独步骤

# 核心逻辑:按YEAR列分组,存储为字典
year_df_dict = {}
for year, group_data in df.groupby('YEAR'):
    year_df_dict[year] = group_data.reset_index(drop=True)

# 后续调用示例
# 读取2010年数据:year_df_dict['2010']
# 读取2011年数据:year_df_dict['2011']
# 批量导出各年份数据为csv:
# for year in year_df_dict:
#     year_df_dict[year].to_csv(f"{year}年数据集.csv", index=False)

如果你确实需要生成df_2010、df_2011这类独立变量,可以用globals()动态生成全局变量,代码如下:

for year, group_data in df.groupby('YEAR'):
    globals()[f'df_{year}'] = group_data.reset_index(drop=True)

# 后续直接调用对应变量即可,比如直接执行df_2010就能查看2010年的数据集

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:12:04