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

循环读取SQL数据生成pandas DataFrame按日期索引匹配合并列问题

问题原因

你当前使用的append方法是行级堆叠操作,每次新增的指数数据会作为新行追加到原有DataFrame末尾,自然不会按日期索引对齐,才会出现日期重复、数据错位的问题。

解决方案

把代码中原来的追加逻辑替换为按索引列对齐的合并逻辑,利用pandas的join方法天然支持按索引匹配的特性,就能实现多列按日期自动对齐,修改步骤如下:

  1. 替换原代码中的indexReturnData = indexReturnData.append(indexReturns)行,改为以下逻辑:
# 首次迭代直接赋值,后续迭代按日期索引外连接对齐
if indexReturnData.empty:
    indexReturnData = indexReturns
else:
    # how='outer'会保留所有日期,缺失数据自动填充NaN
    indexReturnData = indexReturnData.join(indexReturns, how='outer')
  1. 所有数据迭代完成后,可额外添加排序逻辑保证日期按时间顺序排列:
indexReturnData = indexReturnData.sort_index()

效果说明

修改后输出结果会自动按日期对齐,同一个日期的所有指数收益率会展示在同一行,不存在重复日期行:

Date       S&P500  S&P600
9/1/1995    0.042   0.025
10/1/1995  -0.004  -0.050
11/1/1995   0.044   0.038
12/1/1995   0.019   0.016
...
4/1/2020    0.128   0.126
5/1/2020    0.048   0.041
6/1/2020    0.020   0.036
7/1/2020    0.056   0.040

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:06:04