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

Pandas多DataFrame合并时如何将多表匹配值整合为同一列

Pandas多表单列合并解决方案

方案1:使用combine_first(最简洁,适合少量表场景)

直接通过combine_first拼接所有要合并的列,自动取非空值合并为同一列:

import pandas as pd
df1 = pd.DataFrame({'A':[10,20,30]}, index=[1,2,3])
df2 = pd.DataFrame({'B':[200]}, index=[2])
df3 = pd.DataFrame({'C':[300]}, index=[3])

# 核心代码
df = df1.assign(val=df2.B.combine_first(df3.C))
print(df)

输出结果:

A    val
1  10    NaN
2  20  200.0
3  30  300.0

方案2:多表批量合并(适合需要合并的表数量多的场景,易扩展)

如果后续待合并的表数量较多,可以统一收集所有需要合并的列到列表中,批量处理:

# 收集所有需要合并为同一列的Series
merge_cols = [df2['B'], df3['C']]
# 索引对齐后取每行的非空值
merged_col = pd.concat(merge_cols, axis=1).bfill(axis=1).iloc[:, 0]
# 拼接回df1
df = df1.join(merged_col.rename('val'))

两种方案新增待合并表时,只要在对应位置追加对应列即可,不需要逐个join后再手动合并多列。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:54:03