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

如何按索引合并或拼接两个长度与索引部分不同的DataFrame?

解决方案

你可以用pandas的join()或者merge()方法实现这个需求,核心是使用**外连接(outer join)**来保留所有索引,缺失值自动填充NaN。

步骤1:构造示例数据

先还原你的两个DataFrame:

import pandas as pd

data1 = pd.DataFrame({'data1': [16, 37, 18, 49]}, index=[1, 2, 3, 7])
data2 = pd.DataFrame({'data2': [74, 86, 12, 97, 35]}, index=[2, 3, 4, 6, 12])

步骤2:合并DataFrame

方法一:用join()(更简洁,适合基于索引的合并)

merged_result = data1.join(data2, how='outer')

方法二:用merge()(更通用,支持按列或索引合并)

merged_result = pd.merge(data1, data2, left_index=True, right_index=True, how='outer')

验证结果

执行后得到的merged_result就是你要的效果:

indexdata1data2
116NaN
23774
31886
4NaN12
6NaN97
749NaN
12NaN35

关键说明

  • how='outer'是核心:它会保留两个DataFrame的所有索引,没有对应数据的位置自动填充NaN,完全匹配你的需求。
  • join()默认按索引合并,所以代码更简洁;merge()需要显式指定left_index=True和right_index=True来基于索引合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:06:22