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

保留df索引,将df2的SMA列匹配合并至df的方法

解决DataFrame按索引合并并保留原DataFrame所有行的问题

你之前用inner连接导致数据丢失,是因为该连接仅保留两个DataFrame索引的交集。要满足保留df所有索引、匹配填充SMA、不匹配填NaN的需求,推荐以下几种方案:

方案1:使用pd.merge左连接

将连接方式改为how='left',以df的索引为基准保留所有行:

merged_df = pd.merge(df, df2, left_index=True, right_index=True, how='left')
  • 逻辑:左连接会完整保留左侧df的所有索引行,右侧df2中索引匹配的位置填充SMA值,无匹配的位置自动填充NaN。

方案2:使用DataFrame.join(更简洁)

join方法默认以左连接方式按索引合并,代码更简洁:

merged_df = df.join(df2)
  • 该方法等价于方案1的左连接逻辑,无需额外指定参数,适合按索引合并的场景。

方案3:手动重新索引后添加列

如果需要更明确的控制逻辑,可以先将df2的SMA列按df的索引重新对齐,再添加到df中:

merged_df = df.assign(SMA=df2['SMA'].reindex(df.index))
  • 逻辑:reindex(df.index)会将df2的SMA列按照df的索引重新排列,不存在的索引位置自动填充NaN,再通过assign添加为新列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 23:54:57