如何循环遍历股票代码列表批量实现pandas数据清洗导出
股票数据批量处理实现方案
核心逻辑是将单文件处理流程封装为可复用单元,通过维护股票代码列表循环执行处理,完全消除重复代码。
实现步骤
- 保留原有的日期格式清洗函数,无需修改
- 封装单支股票的「文件读取-数据清洗-结果导出」全流程,通过参数传入股票代码、文件存储路径,自动拼接对应文件的访问地址
- 定义待处理的股票代码列表,循环调用单支处理函数即可完成批量操作,额外增加异常捕获避免单文件出错中断整个任务
完整实现代码
import pandas as pd import os # 原有日期转datetime索引的清洗逻辑,保持不变 def clean_func(f1): f1['Date'] = pd.to_datetime(f1['Date']) f1.index = f1['Date'] return f1 def process_single_tkr(tkr: str, file_root: str): # 自动拼接当前股票的文件路径,适配不同操作系统的路径格式 current_file_path = os.path.join(file_root, f"{tkr}.csv") # 读取原始数据 df = pd.read_csv(current_file_path) # 执行数据清洗 df_clean = clean_func(df) # 导出处理后的数据,如需保留原文件可将输出文件名改为f"{tkr}_cleaned.csv" df_clean.to_csv(current_file_path, index=True) print(f"[{tkr}] 数据处理完成") if __name__ == "__main__": # 替换为你需要处理的所有股票代码 tkr_list = ["AAPL", "MSFT", "TSLA", "000001", "600519"] # 替换为你的股票csv文件存放的根目录 data_path = r"C:\\path" # 循环遍历批量处理 for tkr in tkr_list: try: process_single_tkr(tkr, data_path) except Exception as e: print(f"[{tkr}] 处理失败,错误原因:{str(e)}")
补充说明
- 使用
os.path.join拼接路径可以自动适配Windows、macOS、Linux不同系统的路径斜杠规则,避免手动写路径出现的转义、格式错误 - 异常捕获逻辑可以保证某支股票的文件缺失、字段格式错误时,不会终止整个批量任务,只会打印对应错误信息后继续处理剩余股票
to_csv时指定index=True是为了确保设置的Date时间索引能被正确写入导出文件,避免索引丢失
内容的提问来源于stack exchange,提问作者GC123
相关产品推荐
相关产品推荐

