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

合并不同长度DataFrame并保留长表长度插入NaN的实现方法

DataFrame合并最优解决方案

你要实现的需求可以直接用Pandas内置的merge函数完成,底层为C实现,执行效率远高于手写for循环,处理大规模数据也不会有性能问题。

核心逻辑是以长度更长的DataFrame作为左表,按公共匹配列做左连接,短表无匹配值的位置会自动填充NaN,完全适配你的需求。

示例代码

import pandas as pd

# 动态判断长短表,不需要硬编码指定左表
if len(df1) >= len(df2):
    left_df, right_df = df1, df2
else:
    left_df, right_df = df2, df1

# 按公共列合并,on参数填你实际的匹配列名,示例中匹配列列名为0
merged_df = pd.merge(
    left=left_df,
    right=right_df,
    on='0',
    how='left'
)

特殊场景适配

  • 如果你是按行索引对齐而非普通列匹配,把merge的参数替换为left_index=True, right_index=True即可,无需填写on参数。
  • 如果你确定不需要匹配键、仅要按行顺序对齐,直接用join方法更简洁:
merged_df = left_df.join(right_df)

以上方法输出的结果和你示例中的目标merged df完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:27:05