Python如何批量读取同文件夹下CSV为独立DataFrame并筛选指定列
股票CSV批量读取与处理实现方案
核心实现思路是用字典存储不同股票的DataFrame,key为股票代码,value为对应筛选后的数据集,同时读取阶段直接指定需要的列,减少内存占用。
修改后可直接运行的代码如下:
import pandas as pd import os import glob # 获取当前文件夹下所有csv文件路径 path = os.getcwd() csv_files = glob.glob(os.path.join(path, "*.csv")) # 初始化空字典存储所有股票DataFrame stock_dfs = {} # 循环处理每个csv文件 for f in csv_files: # 从文件名提取股票代码(如AAPL.csv提取出AAPL) stock_code = os.path.basename(f).split('.')[0] # 读取时仅保留需要的两列,无需后续裁剪 df = pd.read_csv(f, usecols=['Date', 'Adj Close']) # 存入字典 stock_dfs[stock_code] = df # 可选:打印验证信息 print(f'已处理股票:{stock_code}') print('数据预览:') print(df.head(), '\n')
调用方式
需要单独调取某只股票的数据时,直接通过股票代码从字典取即可:
# 调取苹果公司的股票数据 print(stock_dfs['AAPL']) # 调取阿里巴巴的股票数据 print(stock_dfs['BABA'])
如果确实需要生成独立的全局变量(比如AAPL_df、BABA_df这种单独变量名),可以把循环内的存储逻辑替换为以下代码(不推荐,变量过多时管理成本较高):
for f in csv_files: stock_code = os.path.basename(f).split('.')[0] df = pd.read_csv(f, usecols=['Date', 'Adj Close']) # 动态生成全局变量 globals()[f'{stock_code}_df'] = df # 调用示例 print(AAPL_df)
内容的提问来源于stack exchange,提问作者Leonard
相关产品推荐
相关产品推荐

