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

如何合并Pandas股票子DataFrame并按日期排序及添加Symbol列

解决方案

步骤分解

  • 导入pandas库
  • 初始化空列表存储每个股票的DataFrame
  • 遍历股票代码列表,读取对应CSV文件,添加Symbol列后存入列表
  • 合并所有子DataFrame为一个最终DataFrame
  • 按Date列排序(需确保Date列是日期类型,避免字符串排序错误)

完整代码示例

import pandas as pd

# 目标股票代码列表
tickers = ['AAPL', 'TSLA', 'GOOG']
# 存储单股票DataFrame的容器
stock_dfs = []

for ticker in tickers:
    # 读取对应CSV文件(假设文件名为"股票代码.csv",如AAPL.csv)
    single_stock_df = pd.read_csv(f'{ticker}.csv')
    # 为当前DataFrame添加Symbol列,值为对应股票代码
    single_stock_df['Symbol'] = ticker
    # 将处理后的DataFrame加入容器
    stock_dfs.append(single_stock_df)

# 合并所有单股票DataFrame
final_df = pd.concat(stock_dfs, ignore_index=True)

# 转换Date列为日期类型(关键步骤,保证排序逻辑正确)
final_df['Date'] = pd.to_datetime(final_df['Date'])

# 按Date列升序排序(旧日期在前)
final_df.sort_values(by='Date', inplace=True)

# 重置排序后的索引(可选,消除排序导致的索引混乱)
final_df.reset_index(drop=True, inplace=True)

补充说明

  • 文件路径调整:如果CSV文件不在当前工作目录,需修改pd.read_csv的路径,比如pd.read_csv(f'./stock_data/{ticker}.csv')
  • 自定义日期格式:若CSV中日期格式非标准(如dd/mm/yyyy),可在pd.to_datetime中指定格式:pd.to_datetime(final_df['Date'], format='%d/%m/%Y')
  • 降序排序:若需要新日期在前,添加ascending=False参数:final_df.sort_values(by='Date', ascending=False, inplace=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 05:48:12