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

如何以指定key为连接点合并两个长度不等的dataframe

基于flag标识对齐拼接两个行数不等的DataFrame方案

merge、concat、join默认是按值或索引匹配,不支持按指定行位置偏移拼接,可通过先补空行对齐位置再拼接的方式实现需求:

  • 定位基础df中flag匹配的起始行索引
# df_base为基础DataFrame,target_flag为指定匹配的flag值
match_index = df_base[df_base["flag"] == target_flag].index[0]
  • 给待拼接的第二个df补前置空行,对齐起始位置
import pandas as pd
# df_add为待拼接的第二个DataFrame
prefix_empty = pd.DataFrame([[None] * len(df_add.columns)] * match_index, columns=df_add.columns)
df_add_aligned = pd.concat([prefix_empty, df_add], ignore_index=True)
  • 横向拼接两个对齐后的DataFrame
result_df = pd.concat([df_base, df_add_aligned], axis=1)

若基础df存在多个匹配flag的行,默认取第一个匹配行作为对齐起始点,可根据需求自行调整索引取值逻辑。
若补空行后的df_add长度超过基础df长度,拼接结果会自动补全基础df尾部的空行,无需额外处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:45:03