通用大模型应用案例--处理excel表格

一、需求

        将excel表格中的行转换为字典格式,为下一步处理数据做准备。自己python代码能力不强,把需求告诉通义千问大模型,提示词如下:

第一次提示词:

你是Python专家,擅长编写python程序,尤其在自动化办公excel处理方面经验丰富。我有一个需求,需要将excel工作表的列抬头字段与行列内容转换成字典格式,请给出程序代码。

        以上提示词生成的python代码对于第一行、第二行都作为title,并且有些一二行做了合并的情况考虑不全,所以再次给大模型发需求:

在实际表格中,第一行和第二行都是列头,有的进行了合并,有的没有进行合并,这种情况在程序中如何实现?

        大模型再次输出,中间过程有报错,将报错直接贴给大模型就行。

        经过几遍调试后,大模型的输出达到了要求,满足了需求。

二、大模型输出

import pandas as pd
from openpyxl import load_workbook
import json
from datetime import datetimedef Read_excel_file(file_path):import pandas as pdfrom openpyxl import load_workbookimport jsonfrom datetime import datetime# 读取Excel文件sheet_name = 0  # 第一个工作表,也可以指定工作表名称如 'Sheet1'# 使用openpyxl加载工作簿(非只读模式)wb = load_workbook(file_path)ws = wb.active if sheet_name == 0 else wb[sheet_name]# 获取合并单元格的范围merged_cells = ws.merged_cells.ranges# 使用pandas读取Excel文件df = pd.read_excel(file_path, sheet_name=sheet_name, header=None)# 获取前两行作为列头header1 = df.iloc[0].tolist()header2 = df.iloc[1].tolist()# 处理合并单元格def get_merged_header(merged_cells, col_idx):for cell_range in merged_cells:min_col, max_col, min_row, max_row = cell_range.boundsif min_col <= col_idx + 1 <= max_col and min_row <= 1 <= max_row:return df.at[0, min_col - 1]  # 返回合并单元格的第一个单元格的内容return None# 合并两行的列头,并处理nanfull_header = []for i in range(len(header1)):merged_header = get_merged_header(merged_cells, i)# 处理nanif pd.isna(header2[i]):full_header.append(merged_header if merged_header is not None else header1[i])else:if merged_header is not None:full_header.append(f"{merged_header} {header2[i]}")else:full_header.append(header2[i])# 更新DataFrame的列名df.columns = full_header# 删除前两行(列头)df = df.drop([0, 1]).reset_index(drop=True)# 将DataFrame中的datetime对象转换为字符串def convert_to_str(value):if pd.isnull(value):return "无"if isinstance(value, (pd.Timestamp, datetime)):return value.strftime('%Y/%m/%d')  # 你可以根据需要调整日期格式return value# 应用转换函数到DataFrame的所有元素df = df.applymap(convert_to_str)# 将空字符串替换为“无”df = df.replace('', '无')# 将DataFrame转换为字典列表rows_as_dicts = df.to_dict(orient='records')return rows_as_dicts# 打印结果for row in rows_as_dicts:print(row)# 自定义JSON序列化函数def custom_serializer(obj):if isinstance(obj, (pd.Timestamp, datetime)):return obj.strftime('%Y/%m/%d')raise TypeError(f"Object of type {type(obj)} is not JSON serializable")# 如果需要保存到文件,可以使用以下代码output_file = 'output{}.json'.format(unit)with open(output_file, 'w', encoding='utf-8') as f:json.dump(rows_as_dicts, f, ensure_ascii=False, indent=4, default=custom_serializer)print(f"数据已保存到: {output_file}")if __name__ == '__main__':file_path_all = r'C:\Users\CEC-User\Desktop\202409\汇总不算数据库.xlsx'rows_as_dicts_all = Read_excel_file(file_path_all)for row in rows_as_dicts_all:print(row)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148169.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

MMROTATE 1.X特征图可视化(绘制Heat Map)

本文参考MMYOLO官方的特征图可视化教程&#xff0c;对MMROTATE相关算法进行特征图可视化 1. 新建featmap_vis_demo.py文件 在mmrotate项目文件夹下新建 featmap_vis_demo.py &#xff1a; # Copyright (c) OpenMMLab. All rights reserved. import argparse import os from t…

“吉林一号”宽幅02B系列卫星

离轴四反光学成像系统 1.光学系统参数&#xff1a; 焦距&#xff1a;77.5mm&#xff1b; F/#&#xff1a;7.4&#xff1b; 视场&#xff1a;≥56゜&#xff1b; 光谱范围&#xff1a;400nm&#xff5e;1000nm。 2.说明&#xff1a; 光学系统采用离轴全反射式结构&#xff0c;整…

CIM平台应用的一些思考

今天中午看了一些书&#xff0c;讲致幻剂在疾病治疗的一些作用。致幻剂包括毒蘑菇等这类东西&#xff0c;有精神疾病或其他心里疾病的患者在吸食或注射&#xff08;专业医生的指导下&#xff09;会忘记或减轻身体的痛苦&#xff0c;忘记死亡&#xff0c;相信永生&#xff0c;治…

VMWare虚拟机安装CentOS-7-x86_64-DVD-1611操作系统

VMWare虚拟机安装CentOS7操作系统 1、虚拟机准备打开VMware单机创建新的虚拟机典型与自定义安装选择虚拟机硬件兼容性选择安装程序光盘映射文件(iso)选择客户机操作系统命名虚拟机处理器配置内存配置网络连接类型I/O类型选择磁盘类型选择磁盘指定磁盘的最大磁盘大小磁盘名称我们…

高中数学:立体几何-平面的定义与公理

文章目录 一、平面定义及画法1、定义2、表示方法 二、公理1、公理12、公理23、公理3 一、平面定义及画法 1、定义 平面是向四周无限延展的。 2、表示方法 我们常用矩形的直观图&#xff0c;即平行四边形表示平面&#xff0e; 我们常用希腊字母α&#xff0c;β&#xff0c…

八. 实战:CUDA-BEVFusion部署分析-coordTrans Precomputation

目录 前言0. 简述1. 案例运行2. coordTrans3. Precomputation总结下载链接参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习下课程第八章—实战&#xff1a;CUDA-BEVFusion部署分…

『正版软件』XYplorer 专业的 Windows 文件管理工具软件

在数字化时代&#xff0c;我们每天都在与各种文件打交道。无论是工作文档、个人照片还是多媒体资料&#xff0c;管理这些文件的效率直接关系到我们的工作效率和生活体验。今天&#xff0c;我要向大家推荐一款功能强大、操作简便的文件管理软件 —— XYplorer。 XYplorer&#x…

【小bug】使用 RestTemplate 工具从 JSON 数据反序列化为 Java 对象时报类型转换异常

起因&#xff1a;今天编写一个请求时需要通过RestTemplate调用外部接口&#xff0c;获取一些信息&#xff0c;但是在获取了外部接口响应内容后&#xff0c;使用强制转换发现报了类型转换异常。之前也遇到过&#xff0c;但是没记录下来&#xff0c;今天又查了一遍……干脆记录一…

【hot100-java】【搜索旋转排序数组】

R8-二分查找篇 等等&#xff0c;不是&#xff1f;O(logn)&#xff1f;那岂不是一次遍历数组都超时了hh. 二分查找分类 class Solution {public int search(int[] nums, int target) {if (numsnull||nums.length0){return -1;}int start0;int endnums.length-1;int mid;while …

以太坊客户端Geth的介绍与搭建

一、以太坊客户端 1.介绍 以太坊客户端是指用于连接、交互和参与以太坊区块链网络的软件。以太坊客户端允许用户执行各种操作&#xff0c;如发送交易、挖矿、部署智能合约、同步区块链数据等。 2.功能 区块链同步&#xff1a;客户端会下载并验证以太坊区块链的所有区块&…

windows 出现身份验证错误,要求的函数不受支持

现象环境&#xff1a; win10 mstsc内网远程server2016&#xff0c;出现错误代码&#xff1a; 远程桌面连接出现身份验证错误。要求的函数不受支持。这可能是由于CredSSP加密数据库修正 出现身份验证错误 原因&#xff1a; 系统更新&#xff0c;微软系统补丁的更新将 Cred…

【Godot4.3】2D程序生成植物概论

概述 Godot的2D程序化植物生成是我一直想要探讨的一个内容&#xff0c;但是一直没有真正开动&#xff0c;在刚过去的中秋节假期期间&#xff0c;在老家无聊&#xff0c;在一个素描本上构思了一系列想法。本篇就基于这些自己的想法介绍一下程序化植物生成的基本思路。不一定对&…

c++ 找到给定点集的简单闭合路径(Find Simple Closed Path for a given set of points)

给定一组点&#xff0c;将这些点连接起来而不相交 例子&#xff1a; 输入&#xff1a;points[] {(0, 3), (1, 1), (2, 2), (4, 4), (0, 0), (1, 2), (3, 1}, {3, 3}}; 输出&#xff1a;按以下顺序连接点将 不造成任何交叉 {(0, 0), (3, …

如何在Markdown写文章上传到wordpress保证图片不丢失

如何在Markdown写文章上传到wordpress保证图片不丢失 写文日期,2023-11-16 引文 众所周知markdown是一款nb的笔记软件&#xff0c;本篇文章讲解如何在markdown编写文件后上传至wordpress论坛。并且保证图片不丢失&#xff08;将图片上传至云端而非本地方法&#xff09; 一&…

offsetX、offsetY...

文章目录 offsetX & offsetYclientX & clientYpageX & pageYscreenX & screenYinnerHeight & innerWidthoffsetHeight & offsetWidthoffsetTop & offsetLeftscrollHeight & scrollWidthscrollTop & scrollLeft:与scrollHeight和scrollWidt…

二分查找算法(3) _x的平方根

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 二分查找算法(3) _x的平方根 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 温馨…

《深度学习》—— 卷积神经网络(CNN)的简单介绍和工作原理

文章目录 一、卷积神经网络的简单介绍二、工作原理(还未写完)1.输入层2.卷积层3.池化层4.全连接层5.输出层 一、卷积神经网络的简单介绍 基本概念 定义&#xff1a;卷积神经网络是一种深度学习模型&#xff0c;通常用于图像、视频、语音等信号数据的分类和识别任务。其核心思想…

MIPI协议

MIPI协议 MIPI介绍协议层显示接口&#xff08;Display&#xff09;DBI&#xff08;Display Bus Interface&#xff09;并行传输串行传输 DPI&#xff08;Display Pixel Interface&#xff0c;也称RGB接口&#xff09;DSI&#xff08;Display Serial Interface&#xff09;Appli…

关于使用低版本EPLAN打开高版本项目中的一些常见问题!

目录 1 前言 2 操作方法 2.1 经典版本 2.2 新版本 3 遇到的问题 4 结语 1 前言 在用EPLAN设计图纸时&#xff0c;经常要遇到使用低版本EPLAN打开高版本EPLAN的项目。 EPLAN软件根据操作界面的不同可以分为两种: 1&#xff0c;EPLAN 2.x版本&#xff0c;比如经典的2.9和2…

【Python报错已解决】TypeError: ‘<‘ not supported between instances of ‘str‘ and ‘int‘

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…