写点什么

python 提取特定格式的数据

  • 2024-06-27
    福建
  • 本文字数:1643 字

    阅读完需:约 5 分钟

导入库


脚本使用了以下主要库:

  • tkinter:用于创建图形用户界面。

  • pandas:用于处理 Excel 数据。

  • os:用于处理文件和目录路径。

import tkinter as tkfrom tkinter import filedialog, messageboximport pandas as pdimport 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 开发中非常实用,特别是涉及数据处理和用户界面的项目中。


文章转载自:无为而和

原文链接:https://www.cnblogs.com/-mjs/p/18268170

体验地址:http://www.jnpfsoft.com/?from=infoq

用户头像

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
python提取特定格式的数据_Python_快乐非自愿限量之名_InfoQ写作社区