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 ...
随机推荐
- dotnet C# 如果在构造函数抛出异常 析构函数是否会执行
假设在某个类型的构造函数里面抛出了异常,那么这个对象的析构函数是否会执行 如下面代码 private void F1() { try { _ = new Foo(); } catch { // 忽略 ...
- homebrew的安装和使用
目录 背景 安装xcode 安装homebrew 有关报错解决 卸载脚本 homebrew软件搜索 brew 常用命令 brew redis安装 PhpWebStudy安装 安装php 背景 最近用b ...
- Kubernetes(K8S)安装
Kubermetes (K8S) 安装 参考文档: 官方文档: https://kubernetes.io/zh-cn/docs/concepts/overview/components/#node- ...
- gin返回json假数据
package main import ( "github.com/gin-gonic/gin" "encoding/json" "fmt" ...
- C语言:++ --优先级的深入理解
#include <stdio.h> int main() { int num = 11; int result = ++num > 11 && --num < ...
- OAI SDR LTE 基站部署
目录 文章目录 目录 硬件设备要求 物料购买 部署架构图 安装 LTE/EPC 前期准备 运维相关 操作系统要求 内核要求 CPU Frequency scaling,将 CPU 频率打满 eNode ...
- 推荐一款模拟浏览器自动化操作神器!Mechanize
大家好,我是狂师! 今天给大家推荐一款用于模拟浏览器行为以进行网页自动化操作Python库:Mechanize. 1.介绍 Mechanize是Python中的一个库,它被设计用来自动化网页浏览和数据 ...
- 基于Python的性能优化
一.多线程 在CPU不密集.IO密集的任务下,多线程可以一定程度的提升运行效率. import threading import time import requests def fetch_url( ...
- WampServer 的安装
一, 下载 wampserver3.2.0_x64.exe 文件 二,在D盘新建wamp64文件 三,以管理员的方式运行安装文件 只有两种语方,选择 English 接受协议 下一步: 点击下一 ...
- PHP 中使用 ElasticSearch 的最佳实践 (中)
引言 在上一篇文章当中,我们介绍了如何在 ElasticSearch 中创建索引以及建立字段映射关系. 接下来的这篇文章,我们将在 Laravel 中对商品信息进行增删改查及搜索. 记得 Elasti ...