如何将Excel中重复表名的列数据转换为指定格式的Python字典列表?
解决方案
方法一:Python脚本(高效处理大量数据)
用Pandas库可以快速完成分组转换,代码简单易运行:
import pandas as pd # 读取Excel文件,替换成你的文件路径和工作表名 df = pd.read_excel("data.xlsx", sheet_name="Sheet1") # 按表名分组,整理列名列表(去除空格) result = [] for table_name, group in df.groupby("table_name"): columns = [col.strip() for col in group["column_name"].tolist()] result.append({table_name: columns}) # 输出结果,也可保存到文件 print(result) # 保存到文件 with open("output.txt", "w", encoding="utf-8") as f: f.write(str(result))
运行后直接得到目标格式的结果,1000行数据几秒就能处理完。
方法二:Excel Power Query(无代码可视化操作)
适合不熟悉编程的用户:
- 选中Excel中包含表头的数据区域,点击「数据」→「从表格/区域」,确认表头存在后进入Power Query编辑器
- 选中
table_name列,点击「转换」→「分组依据」,设置分组依据为table_name,新列名设为columns,操作选「所有行」 - 选中
columns列,点击「添加列」→「自定义列」,输入公式:[columns][column_name],生成列名列表 - 删除原
columns列,只保留table_name和新生成的列名列表列 - 点击「主页」→「关闭并上载」,将结果导出到新工作表,再手动拼接成目标格式的字符串
方法三:Excel公式(纯表格操作)
- 先按
table_name对数据排序(「数据」→「排序」,选择table_name升序) - 新增C列,C2输入公式:
=IF(A2=A1,C1&", '"&TRIM(B2)&"'","'"&TRIM(B2)&"'"),下拉填充到所有行 - 新增D列,D2输入公式:
=IF(A2<>A3,"{'A2':["&C2&"]}",""),下拉填充,此时每个表的最后一行会生成对应的字典字符串 - 筛选D列非空单元格,将这些字符串用逗号连接,前后加上
[]就是最终目标格式
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

