python提取特定格式的数据
Excel Grid Data Converter 知识点总结
本文档总结了 ExcelGridConverter.py 脚本所涉及的关键 Python 知识点。该脚本用于从多个 Excel 文件中提取特定格式的数据并转换为一个新的 Excel 文件。
目录
导入库
脚本使用了以下主要库:
tkinter:用于创建图形用户界面。pandas:用于处理 Excel 数据。os:用于处理文件和目录路径。
import tkinter as tk
from tkinter import filedialog, messagebox
import pandas as pd
import os
Pandas 数据处理
读取 Excel 文件
使用 pd.read_excel 方法读取 Excel 文件,并使用 sheet_name=None 参数读取所有工作表。添加 index_col=None 参数以确保第一列不会被自动设置为索引列。
source_df = pd.read_excel(file_path, sheet_name=None, index_col=None)
source_data = source_df['一格一案']
数据提取
通过 Pandas 的 iloc 方法,根据行列索引提取特定数据。
result_data = {
'网格编号': source_data.iloc[1, 1],
'责任段': source_data.iloc[1, 3],
...
}
处理合并单元格数据:
risk_check_path = "\n".join(source_data.iloc[9:19, 1].dropna().astype(str))
result_data['五、风险项点检查路径'] = risk_check_path
创建 DataFrame 并导出为 Excel 文件
将所有提取的数据放入一个 DataFrame 中,并使用 to_excel 方法导出为 Excel 文件。
result_df = pd.DataFrame(all_data)
result_df.to_excel(output_file_path, index=False)
Tkinter GUI 界面
创建主窗口
使用 tk.Tk 创建主窗口,并设置窗口标题、大小和位置。
root = tk.Tk()
root.title("Excel 转换工具")
root.geometry(f'{window_width}x{window_height}+{position_right}+{position_top}')
创建按钮和标签
使用 tk.Button 和 tk.Label 创建按钮和标签,并设置其属性和布局。
title_label = tk.Label(root, text="Excel 转换工具", font=("Arial", 18))
title_label.pack(pady=20)
select_button = tk.Button(root, text="选择 Excel 文件", command=select_files, font=("Arial", 12))
select_button.pack(pady=10)
文件操作
文件对话框
使用 filedialog.askopenfilenames 打开文件选择对话框,允许用户选择多个 Excel 文件。使用 filedialog.asksaveasfilename 打开文件保存对话框,允许用户选择保存路径。
file_paths = filedialog.askopenfilenames(filetypes=[("Excel 文件", "*.xlsx")])
output_file_path = filedialog.asksaveasfilename(defaultextension=".xlsx", filetypes=[("Excel 文件", "*.xlsx")])
主要函数解释
transform_to_result_format_specific
该函数从源数据中提取特定字段,并返回一个字典格式的结果数据。
def transform_to_result_format_specific(source_data, source_file_path):
risk_check_path = "\n".join(source_data.iloc[9:19, 1].dropna().astype(str))
result_data = { ... }
return result_data
select_files
该函数处理文件选择、数据转换和结果保存的主要逻辑。
def select_files():
file_paths = filedialog.askopenfilenames(filetypes=[("Excel 文件", "*.xlsx")])
all_data = []
for file_path in file_paths:
source_df = pd.read_excel(file_path, sheet_name=None, index_col=None)
source_data = source_df['一格一案']
transformed_data = transform_to_result_format_specific(source_data, file_path)
all_data.append(transformed_data)
result_df = pd.DataFrame(all_data)
output_file_path = filedialog.asksaveasfilename(defaultextension=".xlsx", filetypes=[("Excel 文件", "*.xlsx")])
if output_file_path:
result_df.to_excel(output_file_path, index=False)
messagebox.showinfo("成功", "文件已成功转换并保存。")
总结
通过本脚本,我们学习了如何使用 Pandas 读取和处理 Excel 数据,如何使用 Tkinter 创建图形用户界面,以及如何处理文件对话框和文件操作。这些知识点在日常的 Python 开发中非常实用,特别是涉及数据处理和用户界面的项目中。
python提取特定格式的数据的更多相关文章
- 中文格式python 打印json格式的数据中文显示问题
废话就不多说了,开始... 平日会有这么一个应用场景,会用python去处置json格式的web API,以“ip.taobao.com”的API为例,详情见http://ip.taobao.com/ ...
- Python处理json格式的数据文件(一些坑、一些疑惑)
这里主要说最近遇到的一个问题,不过目前只是换了一种思路先解决了,脑子里仍然有疑惑,只能怪自己太菜. 最近要把以前爬的数据用一下了,先简单的过滤一下,以前用scrapy存数据的时候为了省事也为了用一下它 ...
- Python大佬告诉你:使用Python处理yaml格式的数据简单到爆
一.思考❓❔ 1.什么是yaml? 不是标记语言 对用户极其友好 数据序列化标准 跨语言 所有编程语言都支持 跨平台 所有平台都支持 Windows.linux.Mac 格式简单 比json小姐姐穿得 ...
- python处理json格式的数据
这里我就不介绍json了,不知道json的同学可以去百度一下json,首先我们的json的格式如下,这个json有点长,这个json来自我以前的一个小任务,具体看这里:http://www.cnblo ...
- python 将json格式的数据写入csv格式的文件中
# coding=utf-8 import json import csv # 重新进行配置读写数据时的默认编码 import sys reload(sys) sys.setdefaultencodi ...
- 读取txt文件将文本行组合成特定格式
有一网友要求从txt文本文件读取一些数据,然后组合为特定格式的数据行.原论题如下,刚才开始的要求描述得不太清楚,后来补充完整了. Insus.NET觉得本论题可有练习文本件读取功力,因此尝试实现一下. ...
- python:字符串中提取特定的数据
在日志文件中有一大堆,格式相同的文本,需要提取出接口耗时的时间 >>> 运单号:71742507538566,快递100接口耗时:8,返回结果:[{"lengthPre&q ...
- (数据科学学习手札65)利用Python实现Shp格式向GeoJSON的转换
一.简介 Shp格式是GIS中非常重要的数据格式,主要在Arcgis中使用,但在进行很多基于网页的空间数据可视化时,通常只接受GeoJSON格式的数据,众所周知JSON(JavaScript Obje ...
- Python处理NetCDF格式数据为TIFF数据(附脚本代码)
博客小序:NetCDF格式数据广泛应用于科学数据的存储,最近几日自己利用python处理了一些NetCDF数据,特撰此博文以记之. 参考博客: https://www.cnblogs.com/shou ...
- python将json格式的数据转换成文本格式的数据或sql文件
python如何将json格式的数据快速的转化成指定格式的数据呢?或者转换成sql文件? 下面的例子是将json格式的数据准换成以#_#分割的文本数据,也可用于生成sql文件. [root@bogon ...
随机推荐
- 3.Exporter概述
一.Exporter概述 所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter.而Exporter的一个实例称为target,如下所示,Prometheus通过轮询的方 ...
- 修改element,vant,mint等ui框架的样式
vant和mint移动端常见,引入单独的css文件,在main.js中引入下即可,直接在对应的vue文件的css通过控制台查看中修改也行,再不济加!important element: 1.vue框架 ...
- ABAP CDS 在7.55有比较大的更新
几年前翻译过CDS的相关文章,部分内容已经过时,比如当时的DDIC CDS在7.55以后已经沦为obsolete,在新版本中,开发者应使用DEFINE VIEW ENTITY而非DEFINE VIEW ...
- All in One:Prometheus 多实例数据统一管理最佳实践
01 引言 Prometheus 作为目前最主流的可观测开源项目之一,已经成为云原生监控的事实标准,被众多企业广泛应用.在使用 Prometheus 的时候,我们经常会遇到全局视图的需求,但是数据确分 ...
- 在IDEA中配置GitHub
目录 在IDEA中配置GitHub 安装GitHub插件 账号授权 方法一:点击Add Account... 添加账号 方法二:使用token登录 共享到GitHub 查看文件变更列表 add文件 移 ...
- Linux定时任务实现每秒执行一次
编写/root/test.sh脚本 该方法适用于调度周期能被60整除的情况 #!/bin/bash step=1 for (( i = 0; i < 60; i = (i+step) )); d ...
- uniAPP Android平台完整更新与热更新
一.概述 1.uni-app打包成apk或wgt文件,使用plus.runtime.getProperty方法获取本地应用资源版本号.2.调用后端接口,拿到与后端规定好的版本号,与前面获取的版本号进行 ...
- ctf_web
ctfshow web13 访问题目链接 一看是一道文件上传题,上传文件进行测试 上传php会显示 error suffix 因此推测会检测格式 当文件字数超出一定字数时,显示 error file ...
- Istio(四):创建部署Gateway并使用网关暴露服务
目录 一.模块概览 二.系统环境 三.Gateway网关 3.1 使用 Gateway 四.实战:使用Gateway发布服务 4.1 创建部署并使用网关暴露 4.2 清理 一.模块概览 在Kubern ...
- 【jetson nano】yolov5环境配置tensorrt部署加速
安装pytorch Nano上预装的Jetpack版本为4.6.1,Python为3.6.9,CUDA环境为10.2.在PyTorch for Jetson中可以下载不同版本的torch,torch& ...