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 ...
随机推荐
- 快速搭建Zookeeper和Kafka环境
前言 由于项目需要涉及到zookeeper和Kafka的使用,快速做了一篇笔记,方便小伙伴们搭建环境. zookeeper 官方定义 What is ZooKeeper? ZooKeeper is a ...
- DB2查找最耗时SQL
两种方法:db2top和snapshot for dynamic sql 1. db2top -d <dbname>
- Typora+免费图床,构建随处可用的Markdown文档
Typora+PicGo+Gitee自动上传图片 视频教程: https://www.bilibili.com/video/BV1hT4y1f7Mf?from=search&seid=1546 ...
- tar和zip包加密解密压缩
1.概述 嗯,最近有些机密文件无处安放,因为太机密了,后来确定加密后放到服务器上.研究一番后发现tar和zip命令都能实现,所以在此记录一下. 压缩:tar -zcvf - ./packageTest ...
- flask注册功能
一个项目的简单结构划分 首先创建一个新项目 可以正常运行与访问 创建配置文件并添加配置. 将这里拆分到不同的文件中,让启动文件更加简洁. 创建一个apps包,导入配置模块,导入Flask,定义创建ap ...
- mit 6.824 lab1 思路贴
前言 为遵守 mit 的约定,这个帖子不贴太多具体的代码,主要聊聊自己在码代码时的一些想法和遇到的问题. 这个实验需要我们去实现一个 map-reduce 的功能.实质上,这个实验分为两个大的板块,m ...
- .net core C# DataTable 和List之间相互转换的方法
一.List<T>/IEnumerable转换到DataTable/DataView 方法一: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 ...
- .NET周刊【5月第4期 2024-05-26】
国内文章 开源低代码框架 ReZero API 正式版本发布 ,界面操作直接生成API https://www.cnblogs.com/sunkaixuan/p/18201175 ReZero是一款. ...
- Android启动过程-万字长文(Android14)
在计算机启动过程和Linux内核Kernel启动过程介绍了计算机启动和内核加载,本篇文章主要介绍Android系统是如何启动的. 一.Android启动流程 Android系统的启动流程与Linux接 ...
- 开源一站式敏捷测试管理,极简项目管理平台 itest(爱测试) 6.6.2 发布,便捷迫切功能增强
(一)itest 简介及更新说明 itest 开源敏捷测试管理,testOps 践行者,极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试5合1,又有丰富的统计分析.可按测试包分配测试用例执行 ...