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

如何在Python中合并两列数据中溢出到下一行的单元格?

处理文本溢出行的合并方案

假设你用Pandas处理数据,这里提供两种符合需求的实现方式:

方式一:构造严格交替空白的列0

适合需要最终列0严格呈现“有值-空白”交替状态的场景:

import pandas as pd

# 示例原始数据
data = {
    '列0': ['项目A', '', '项目B', '项目C', ''],
    '列1': ['正常文本1', '溢出文本1', '正常文本2', '正常文本3', '溢出文本3']
}
df = pd.DataFrame(data)

# 1. 用非空列0值填充分组键,将溢出行归到对应主行的分组
df['分组键'] = df['列0'].ffill()
# 2. 分组合并列1的文本内容
合并后的内容 = df.groupby('分组键')['列1'].apply(' '.join).reset_index()
# 3. 构造交替空白的列0结构
结果 = pd.DataFrame({
    '列0': 合并后的内容['分组键'].repeat(2).tolist(),
    '列1': 合并后的内容['列1'].repeat(2).tolist()
})
# 将偶数索引行的列0设为空白
结果.loc[结果.index % 2 == 1, '列0'] = ''

print(结果)

输出效果:

列0列1
项目A正常文本1 溢出文本1
正常文本1 溢出文本1
项目B正常文本2
正常文本2
项目C正常文本3 溢出文本3
正常文本3 溢出文本3

方式二:保留原始行结构,合并溢出内容到主行

适合需要保留原始行数量,仅将溢出文本合并到上一行的场景:

import pandas as pd

# 示例原始数据
data = {
    '列0': ['项目A', '', '项目B', '项目C', ''],
    '列1': ['正常文本1', '溢出文本1', '正常文本2', '正常文本3', '溢出文本3']
}
df = pd.DataFrame(data)

# 按列0的非空行划分分组,合并每组内的列1文本
df['列1'] = df.groupby(df['列0'].ne('').cumsum())['列1'].transform(' '.join)

print(df)

输出效果:

列0列1
项目A正常文本1 溢出文本1
正常文本1 溢出文本1
项目B正常文本2
项目C正常文本3 溢出文本3
正常文本3 溢出文本3

注意事项

如果你的数据中空值是NaN而非空字符串,需要先执行df['列0'] = df['列0'].fillna('')统一格式后再处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:25:39