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

如何用Pandas合并仅含单列的两个DataFrame?

解决方案

你可以通过**全外连接(outer join)**结合列后缀来实现需求,具体代码如下:

import pandas as pd

df1 = pd.DataFrame({'x': [1, 2, 3, 4]})
df2 = pd.DataFrame({'x': [1, 2, 3, 5, 6]})

# 执行全外连接,自动给重复列名添加指定后缀
result = pd.merge(df1, df2, on='x', how='outer', suffixes=('_1', '_2'))

# 如果需要保留整数类型(避免因NaN转为float),可以使用可空整数类型
result = result.astype({'x_1': 'Int64', 'x_2': 'Int64'})
print(result)

输出结果:

x_1  x_2
0    1    1
1    2    2
2    3    3
3    4  NaN
4  NaN    5
5  NaN    6

关键说明

  • how='outer':保留两个DataFrame中所有的x值,匹配不上的位置用NaN填充,正好符合你需要的行结构。
  • suffixes=('_1', '_2'):因为两个DataFrame的列名都是x,合并后会自动给来自df1的列加_1后缀,df2的列加_2后缀,无需手动重命名。
  • 可空整数类型Int64(注意大写I):解决了Pandas中整数列出现NaN时自动转为float的问题,保留整数显示形式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 04:42:18