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

Pandas多表合并时保留主dataframe原有行数的方法问询

问题解决方案

你出现合并后行数异常的核心原因是未使用匹配的关联规则,两个衍生表均从主表生成,和主表行一一对应,可直接用以下两种简便方法实现行数完全匹配的合并:

方法1:按索引横向拼接(最简便,适用于三个表行顺序/索引完全对应场景)

直接使用pd.concat指定横向拼接轴即可:

import pandas as pd

# 假设主表为df_main,两个衍生表分别为df_derived1、df_derived2
df_result = pd.concat([df_main, df_derived1, df_derived2], axis=1)

方法2:按主键左匹配(适用于有唯一主键、索引不一致场景)

如果两个衍生表带有和主表一致的唯一主键列(比如示例中的用户id/订单id类字段),用左连接合并即可保证主表行数不丢失:

# 假设唯一关联主键为user_id
df_result = df_main.merge(df_derived1, on="user_id", how="left")\
                   .merge(df_derived2, on="user_id", how="left")

参考表示例

  • 原始主dataframe示例:
    原始主dataframe示例
  • 第一个衍生dataframe示例:
    第一个衍生dataframe示例
  • 第二个衍生dataframe示例:
    第二个衍生dataframe示例
  • 预期最终输出效果:
    预期最终输出效果

注意事项

  • 若使用concat方法,需提前确认三个表的行顺序完全一致,避免出现数据错位
  • 若使用merge方法,需确保衍生表的主键无重复值,否则会生成笛卡尔积导致行数超出预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 01:45:10