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

使用Pandas将两行内容合并至后一行的方法及报错解决

Pandas合并指定行指定列内容到后一行的解决方案

问题场景

原DataFrame:

ABCD
NaNNaNRossiBrambilla
FedericoGiovanniGiorgioMarcello

期望结果:

ABCD
NaNNaNRossiBrambilla
FedericoGiovanniRossi GiorgioBrambilla Marcello

错误原因分析

你之前的代码出现IndexError: single positional indexer is out-of-bounds,核心问题有两个:

  • 变量名不匹配:代码里用了df_bo,但实际你的DataFrame变量应为df,导致引用了不存在的对象或行数不足的数据集
  • 错误赋值整行:直接修改df.iloc[1]会把A、B列也处理成NaN + 字符串,最终还是NaN,不符合需求,应该只针对需要合并的列操作

可行解决方案

方法1:直接定位列赋值

先构造示例DataFrame(已有数据集可跳过):

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [np.nan, 'Federico'],
    'B': [np.nan, 'Giovanni'],
    'C': ['Rossi', 'Giorgio'],
    'D': ['Brambilla', 'Marcello']
})

针对C、D列拼接第一行和第二行内容:

# 仅修改需要合并的C、D列
df.loc[1, ['C', 'D']] = df.loc[0, ['C', 'D']] + ' ' + df.loc[1, ['C', 'D']]

方法2:使用str.cat更安全拼接字符串

如果要处理的列较多,推荐用str.cat方法,避免空值拼接异常:

merge_cols = ['C', 'D']
df.loc[1, merge_cols] = df.loc[0, merge_cols].str.cat(df.loc[1, merge_cols], sep=' ')

两种方法执行后,都能得到你期望的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:45:35