经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
python提取特定格式的数据
来源:cnblogs  作者:无为而和  时间:2024/6/26 8:52:05  对本文有异议

Excel Grid Data Converter 知识点总结

本文档总结了 ExcelGridConverter.py 脚本所涉及的关键 Python 知识点。该脚本用于从多个 Excel 文件中提取特定格式的数据并转换为一个新的 Excel 文件。

目录

  1. 导入库
  2. Pandas 数据处理
  3. Tkinter GUI 界面
  4. 文件操作
  5. 主要函数解释
  6. 总结

导入库

脚本使用了以下主要库:

  • tkinter:用于创建图形用户界面。
  • pandas:用于处理 Excel 数据。
  • os:用于处理文件和目录路径。
  1. import tkinter as tk
  2. from tkinter import filedialog, messagebox
  3. import pandas as pd
  4. import os

Pandas 数据处理

读取 Excel 文件

使用 pd.read_excel 方法读取 Excel 文件,并使用 sheet_name=None 参数读取所有工作表。添加 index_col=None 参数以确保第一列不会被自动设置为索引列。

  1. source_df = pd.read_excel(file_path, sheet_name=None, index_col=None)
  2. source_data = source_df['一格一案']

数据提取

通过 Pandas 的 iloc 方法,根据行列索引提取特定数据。

  1. result_data = {
  2. '网格编号': source_data.iloc[1, 1],
  3. '责任段': source_data.iloc[1, 3],
  4. ...
  5. }

处理合并单元格数据:

  1. risk_check_path = "\n".join(source_data.iloc[9:19, 1].dropna().astype(str))
  2. result_data['五、风险项点检查路径'] = risk_check_path

创建 DataFrame 并导出为 Excel 文件

将所有提取的数据放入一个 DataFrame 中,并使用 to_excel 方法导出为 Excel 文件。

  1. result_df = pd.DataFrame(all_data)
  2. result_df.to_excel(output_file_path, index=False)

Tkinter GUI 界面

创建主窗口

使用 tk.Tk 创建主窗口,并设置窗口标题、大小和位置。

  1. root = tk.Tk()
  2. root.title("Excel 转换工具")
  3. root.geometry(f'{window_width}x{window_height}+{position_right}+{position_top}')

创建按钮和标签

使用 tk.Buttontk.Label 创建按钮和标签,并设置其属性和布局。

  1. title_label = tk.Label(root, text="Excel 转换工具", font=("Arial", 18))
  2. title_label.pack(pady=20)
  3. select_button = tk.Button(root, text="选择 Excel 文件", command=select_files, font=("Arial", 12))
  4. select_button.pack(pady=10)

文件操作

文件对话框

使用 filedialog.askopenfilenames 打开文件选择对话框,允许用户选择多个 Excel 文件。使用 filedialog.asksaveasfilename 打开文件保存对话框,允许用户选择保存路径。

  1. file_paths = filedialog.askopenfilenames(filetypes=[("Excel 文件", "*.xlsx")])
  2. output_file_path = filedialog.asksaveasfilename(defaultextension=".xlsx", filetypes=[("Excel 文件", "*.xlsx")])

主要函数解释

transform_to_result_format_specific

该函数从源数据中提取特定字段,并返回一个字典格式的结果数据。

  1. def transform_to_result_format_specific(source_data, source_file_path):
  2. risk_check_path = "\n".join(source_data.iloc[9:19, 1].dropna().astype(str))
  3. result_data = { ... }
  4. return result_data

select_files

该函数处理文件选择、数据转换和结果保存的主要逻辑。

  1. def select_files():
  2. file_paths = filedialog.askopenfilenames(filetypes=[("Excel 文件", "*.xlsx")])
  3. all_data = []
  4. for file_path in file_paths:
  5. source_df = pd.read_excel(file_path, sheet_name=None, index_col=None)
  6. source_data = source_df['一格一案']
  7. transformed_data = transform_to_result_format_specific(source_data, file_path)
  8. all_data.append(transformed_data)
  9. result_df = pd.DataFrame(all_data)
  10. output_file_path = filedialog.asksaveasfilename(defaultextension=".xlsx", filetypes=[("Excel 文件", "*.xlsx")])
  11. if output_file_path:
  12. result_df.to_excel(output_file_path, index=False)
  13. messagebox.showinfo("成功", "文件已成功转换并保存。")

总结

通过本脚本,我们学习了如何使用 Pandas 读取和处理 Excel 数据,如何使用 Tkinter 创建图形用户界面,以及如何处理文件对话框和文件操作。这些知识点在日常的 Python 开发中非常实用,特别是涉及数据处理和用户界面的项目中。


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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号