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

Python读取Excel如何拆分单列含多个引用值的行数据

Python实现Excel多引用值拆分为多行方案

核心思路:读取Excel数据后,将References列的多引用值拆分为列表,再通过explode方法将列表元素拆为独立行,其余列自动保留原行数值;如果需要严格遵循逐行处理逻辑,也可通过遍历行的方式实现。

前置依赖安装

先安装处理Excel需要的第三方库:

pip install pandas openpyxl

高效实现版本(推荐)

基于pandas内置方法实现,处理大文件速度更快:

import pandas as pd

# 读取原始Excel文件,替换为实际文件路径,sheet_name指定目标工作表
df = pd.read_excel("你的原始数据.xlsx", sheet_name="Sheet1")

# 拆分References列多值,默认适配逗号、分号、空格、顿号作为分隔符,自动过滤空值和多余空格
df["References"] = df["References"].apply(
    lambda x: [ref.strip() for ref in str(x).replace(";", ",").replace(" ", ",").replace("、", ",").split(",") if ref.strip()]
)

# 拆分为多行,重置索引
df_result = df.explode("References", ignore_index=True)

# 结果预览与导出
print(df_result.to_string(index=False))
df_result.to_excel("拆分完成结果.xlsx", index=False)

逐行处理版本(完全匹配逐行拆分逻辑)

严格按照「处理完当前行所有引用拆分,再处理下一行」的逻辑编写,流程更直观:

import pandas as pd

df = pd.read_excel("你的原始数据.xlsx", sheet_name="Sheet1")
result = []

for _, row in df.iterrows():
    # 拆分当前行的所有引用值
    ref_list = [
        ref.strip() 
        for ref in str(row["References"]).replace(";", ",").replace(" ", ",").split(",") 
        if ref.strip()
    ]
    # 每个引用对应生成一行,其余字段完全复用原行值
    for single_ref in ref_list:
        current_row = row.to_dict()
        current_row["References"] = single_ref
        result.append(current_row)

# 转换为结构化数据,预览+导出
df_result = pd.DataFrame(result)
print(df_result.to_string(index=False))
df_result.to_excel("拆分完成结果.xlsx", index=False)

适配说明

  • 若References列多值使用其他特殊分隔符,只需在拆分逻辑中添加对应的替换规则,或直接在split()方法中传入实际分隔符即可,例如固定使用竖线分隔可直接写str(x).split("|")
  • 代码自动过滤引用值前后多余空格、拆分产生的空字符串,不会生成带空引用的无效行
  • 输出列顺序与原文件完全一致,Date/ID/Amount/Weight等非拆分列数值与原行完全匹配,和预期输出格式对齐

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 18:48:28