You need to enable JavaScript to run this app. Pandas拼接DataFrame行数不符的问题及索引重置方法
优惠活动
大模型
产品
解决方案
定价
更多

Pandas拼接DataFrame行数不符的问题及索引重置方法

问题根因定位

你对问题的判断完全准确:拼接异常的核心原因是pd.concat的横向拼接逻辑是按索引标签严格对齐,而非按行的物理顺序匹配。
两边的索引错位情况:

  • title_w2v为连续无缺失索引,覆盖范围0~448,共449行
  • df_fe为前期删行后留下的非连续索引,虽然实际行数是449行,但索引标签覆盖范围到0~452,存在索引缺失、标签不连续的问题
    这种索引不匹配的状态下,直接执行concat会出现标签错位匹配,最终导致拼接结果的行数不符合预期。
可行解决方案

通过重置索引消除非连续标签带来的错位是完全可行的,操作时注意顺序,保证两个数据集的物理行顺序完全对应:

  1. 分别对两个数据集重置索引,丢弃原有的非连续索引,避免旧标签干扰:
    # drop=True表示直接移除旧索引,不将旧索引作为新列保留
    df_fe_clean = df_fe.reset_index(drop=True)
    title_w2v_clean = title_w2v.reset_index(drop=True)
    
  2. 执行拼接操作:
    此时两个数据集的索引均为连续的0~448,完全匹配,执行你原有的拼接代码即可得到预期的449行19列结果:
    df_result = pd.concat([df_fe_clean, title_w2v_clean], axis=1, join='inner')
    
避坑提醒

如果跳过重置索引步骤,即便使用join='inner',也无法得到正确结果:因为inner join只是取两个数据集索引标签的交集,无法自动校正物理行和索引标签的错位关系,最终拼接出来的行内容也会是错配的。

可以在拼接前增加一行校验代码,确认索引匹配后再执行拼接:

# 输出为True时再执行拼接,避免错位
print("索引对齐校验:", df_fe_clean.index.equals(title_w2v_clean.index))

额外提示:如果title_w2v是直接从df_fe中逐行提取生成的,重置索引后完全可以保证行顺序一致,不会出现内容错配的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 02:45:02