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

如何用Python Pandas合并Excel中跨两行的单元格为数组?

用Pandas处理Excel跨行单元格合并需求

问题场景

Excel表格中部分单元格内容跨两行分布,直接用Pandas读取后会生成两行数据:

1:[Data A1, Data B1, Data C1, Data D1, Data E1], 
2:[' ', Data B1, ' ', Data D1, ' ']

需要将跨行的单元格内容合并到同一行的对应单元格中,以数组形式存储,最终目标格式:

1:[Data A1, [Data B1, Data B1], Data C1, [Data D1, Data D1], Data E1]

解决方案代码

import pandas as pd

# 读取Excel文件,将空单元格转为空字符串(避免默认NaN干扰判断)
df = pd.read_excel('data.xlsx', sheet_name='Sheet1', keep_default_na=False)

# 将数据按每两行分为一组(对应跨行的两行数据)
row_groups = df.groupby(df.index // 2)

# 定义跨行合并逻辑
def merge_group_rows(group):
    merged_cols = []
    for col_name in group.columns:
        # 获取当前列两行的所有值,过滤空字符串
        col_values = [val for val in group[col_name].tolist() if val != '']
        # 只有一个有效值则直接保留,多个则转为数组
        merged_cols.append(col_values if len(col_values) > 1 else col_values[0])
    return pd.Series(merged_cols, index=group.columns)

# 应用合并逻辑到每个分组,生成处理后的DataFrame
processed_df = row_groups.apply(merge_group_rows)

# 保存结果到新Excel文件
processed_df.to_excel('output.xlsx', index=False)

代码说明

  1. 读取数据处理空值:使用keep_default_na=False将Excel空白单元格转为空字符串,避免后续判断时混淆NaN和空内容。
  2. 分组逻辑:通过df.index // 2把连续两行分为一个分组,确保跨行的内容被归到同一组处理。
  3. 合并逻辑:遍历每个列,收集分组内两行的有效数据(过滤空字符串),如果有效数据多于一个则转为数组,否则保留单个值。
  4. 结果保存:将处理后的分组数据转为DataFrame,直接导出到Excel文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 09:05:15