如何在循环中为列表中的每个股票代码创建对应的Pandas DataFrame
问题原因
你当前的代码在循环中重复给同一个变量data赋值,每次新的读取结果都会覆盖上一次的内容,因此循环结束后只能保留最后一次读取的股票数据。
解决方法
下面是两种常用的实现方案,可根据你的后续使用需求选择:
方案1:用字典存储独立的单股票DataFrame
这是最常用的方案,每个股票代码对应独立的DataFrame,后续取用灵活。
代码示例:
# 初始化空字典,键为股票代码,值为对应的DataFrame ticker_df_map = {} for ticker in stock_tickers: ticker_df_map[ticker] = pd.read_csv(f'{ticker}_{get_date()}.csv')
使用示例:需要调取某只股票数据时,直接用股票代码作为key取值即可,例如ticker_df_map["AAPL"]即可获取苹果公司对应的DataFrame。
方案2:合并为全量总DataFrame
如果需要统一分析所有股票数据,可以合并为一个总表,新增列标记股票代码即可。
代码示例:
df_list = [] for ticker in stock_tickers: temp_df = pd.read_csv(f'{ticker}_{get_date()}.csv') # 新增列标记当前数据所属股票代码 temp_df["ticker"] = ticker df_list.append(temp_df) # 拼接所有数据为一个总DataFrame full_df = pd.concat(df_list, ignore_index=True)
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

