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

如何合并不同索引的两个Pandas DataFrame列?

解决DataFrame列并排合并(索引不匹配场景)

你需要将两个索引不匹配的DataFrame按列并排整合,示例数据如下:

DF1(索引为19、20):

A      B
19   Apple  Fruit
20  Banana  Fruit

DF2(索引为321、322):

C  D
321  X  2
322  Y  1

预期输出:

A      B  C  D
0   Apple  Fruit  X  2
1  Banana  Fruit  Y  1

你之前尝试的pd.concat([DF1,DF2],axis=1,ignore_index=True)无效,原因是ignore_index=True仅重置列索引,行仍按原索引对齐,导致数据错位出现NaN。


方法1:重置索引后用concat合并

先对两个DataFrame调用reset_index(drop=True)重置行索引为默认的连续整数,再执行列方向合并:

import pandas as pd

# 模拟索引不匹配的DataFrame
DF1 = pd.DataFrame({'A': ['Apple', 'Banana'], 'B': ['Fruit', 'Fruit']}, index=[19, 20])
DF2 = pd.DataFrame({'C': ['X', 'Y'], 'D': [2, 1]}, index=[321, 322])

# 重置索引并合并
DF3 = pd.concat([DF1.reset_index(drop=True), DF2.reset_index(drop=True)], axis=1)
print(DF3)

方法2:用join方法合并(同样需重置索引)

join方法默认按列合并,配合索引重置也能实现需求:

DF3 = DF1.reset_index(drop=True).join(DF2.reset_index(drop=True))

关键原理

当两个DataFrame索引不重叠时,直接按列合并会触发索引对齐逻辑,导致非共同索引的位置填充NaN。重置索引后,两者行索引统一为0、1...,合并时就能按行序一一对应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 02:44:58