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

将含重复值的列表转换为指定格式DataFrame并导出到Excel

实现方案

核心思路是先将list2的元素按list1的对应键分组,再将分组后的结构化数据导出为Excel,两种常用实现方式如下:

方法1:使用pandas实现(最简方案)

先安装依赖:
pip install pandas openpyxl

完整代码:

import pandas as pd

list1 = ['1','2','3','1','2','3','1','2','3']
list2 = ['a','b','c','d','e','f','g','h','i']

# 按list1的键分组存储对应值
grouped = {}
for key, val in zip(list1, list2):
    grouped.setdefault(key, []).append(val)

# 转为表格结构导出
df = pd.DataFrame(grouped)
df.to_excel("result.xlsx", index=False)

执行后生成的result.xlsx完全符合需求:表头为1、2、3,对应列分别存放匹配的元素。

方法2:无pandas依赖,直接用openpyxl生成

如果不想引入pandas,可直接用Excel操作库实现:

from openpyxl import Workbook

list1 = ['1','2','3','1','2','3','1','2','3']
list2 = ['a','b','c','d','e','f','g','h','i']

# 分组逻辑同上
grouped = {}
for key, val in zip(list1, list2):
    grouped.setdefault(key, []).append(val)

# 初始化Excel文件
wb = Workbook()
ws = wb.active

# 写入表头,sorted保证表头顺序为1、2、3
headers = sorted(grouped.keys())
ws.append(headers)

# 逐行写入数据
for row_data in zip(*[grouped[h] for h in headers]):
    ws.append(row_data)

wb.save("result.xlsx")

两种方案均支持任意次数的键重复,不需要硬编码匹配规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:36:02