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

如何按列合并两个DataFrame?pd.concat与pd.merge使用遇问题求助

解决DataFrame按列合并的问题

核心问题分析

你遇到的pd.merge报错,是因为试图用不同数据类型的列(object和float64)做关联合并;而pd.concat没成功,大概率是没指定横向拼接参数,或者两个DataFrame的索引没对齐。

正确解决方案

方案1:用pd.concat实现横向按列合并(匹配你的预期输出)

你的预期结果是直接把两个DataFrame的列横向拼接、行一一对应,这时候必须给pd.concat加上axis=1参数指定横向拼接:

import pandas as pd
result = pd.concat([df, df1], axis=1)

如果之前拼接后结果不对,大概率是两个DataFrame的索引不一致,先重置索引再拼接:

df = df.reset_index(drop=True)
df1 = df1.reset_index(drop=True)
result = pd.concat([df, df1], axis=1)

方案2:处理类型后用pd.merge(仅当需要关联合并时)

如果你的需求是按某一列做关联合并(不是单纯横向拼接),先统一合并列的数据类型:
比如假设合并列名为key,将其中一个DataFrame的该列类型转换为和另一个一致:

# 把df的key列转为float64,匹配df1的列类型
df['key'] = df['key'].astype('float64')
# 或者反过来把df1的key列转为object
# df1['key'] = df1['key'].astype('object')

# 执行关联合并
result = pd.merge(df, df1, on='key')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 05:40:53