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

合并带整数索引的多DataFrame并保留索引,求更简洁实现方案

更简洁的多DataFrame合并方案(保留所有索引)

嘿,你现在手动处理索引的方法确实能解决问题,但Pandas其实自带了更简洁的工具来完成这个需求,完全不用手动去收集、去重和排序索引~

方法一:用pd.concat一键搞定

这是最直接高效的方式,一行代码就能实现你要的效果:

import pandas as pd

# 把你的所有DataFrame放进列表里
dfs = [df_1, df_2]
# 横向合并、保留所有索引、排序索引,最后填充缺失值
result = pd.concat(dfs, axis=1, join='outer', sort=True).fillna('-')

代码细节解释:

  • axis=1:指定横向合并(按列拼接),匹配你的需求;
  • join='outer':这是pd.concat的默认参数,会自动保留所有DataFrame里出现过的索引,不用手动收集整理;
  • sort=True:让最终结果的索引按升序排列,和你示例里的输出格式完全一致;
  • fillna('-'):把合并后缺失的位置替换成你示例中的-,如果不需要替换,直接去掉这个方法,缺失值会显示为NaN。

对比你原来的方法

这个方案省去了手动循环收集索引、去重、排序的步骤,Pandas内部已经帮你完成了所有索引的整合工作,代码更简洁,也更不容易出错——尤其是当你有大量DataFrame要合并时,优势会更明显。

用你的示例数据测试,运行上面的代码后,得到的结果和你期望的完全一致:

a     b
0   1     -
1   3     -
2   -     4
4   -    11
5  10     -
7   2     3
9   -     4

内容的提问来源于stack exchange,提问作者Krzysztof Słowiński

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:08:07