You need to enable JavaScript to run this app. 如何仅使用一个索引拼接两个Pandas DataFrame数据集
优惠活动
大模型
产品
解决方案
定价
更多

如何仅使用一个索引拼接两个Pandas DataFrame数据集

报错原因

NoneType' object has no attribute 'index'报错的核心是df1[0]已经不是DataFrame对象,多数是此前对df1[0]执行带inplace=True的操作时,返回值为None覆盖了原变量导致。先重新生成有效的df1[0]、df2[0]两个DataFrame对象,确认两者行数均为3,符合横向拼接的长度要求。

pd.concat出现大量NaN是因为Pandas横向拼接默认按索引对齐,df1[0]的索引为[0,1,2]、df2[0]的索引为['203A','206B','207A'],两者无公共索引,所以拼接后所有值为空。

实现方案

方法1:替换索引后concat拼接

# 拷贝对象避免修改原数据
df1_left = df1[0].copy()
df2_right = df2[0].copy()

# 将df1的索引替换为df2的索引
df1_left.index = df2_right.index

# 横向拼接得到结果
result = pd.concat([df1_left, df2_right], axis=1)

方法2:用join方法直接指定索引基准

# 以df2为基准表,关联df1的内容时直接把df1的索引替换为df2的索引
result = df2[0].join(df1[0].set_index(df2[0].index))

两种方法都可以得到以df2[0]的索引为统一基准的拼接结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 20:45:03