使用Python實現分組數據并保存到單獨的文件中
Python分組數據并保存到單獨的文件中
步驟 1: 導入所需的庫
import os import pandas as pd
步驟 2: 讀取 Excel 數據
# 讀取 Excel 數據 df = pd.read_excel("C:\\Users\\liuchunlin2\\Desktop\\新建XLSX 工作表.xlsx")
步驟 3: 根據指定字段分組數據
# 根據學校、班級、老師字段分組 grouped = df.groupby(['學校', '班級', '老師'])
步驟 4: 創(chuàng)建保存拆分數據的文件夾
# 新建文件夾路徑 folder_path = "C:\\Users\\liuchunlin2\\Desktop\\拆分數據" os.makedirs(folder_path, exist_ok=True) # 檢查文件夾是否存在,若不存在則創(chuàng)建
步驟 5: 遍歷分組數據并保存到不同的 Excel 文件中
# 遍歷分組,并將每個分組的數據保存到不同的 Excel 文件中 for name, group in grouped: school, grade, teacher = name filename = f"{school}_{grade}_{teacher}.xlsx" file_path = os.path.join(folder_path, filename) group.to_excel(file_path, index=False)
創(chuàng)建一個簡單的圖形用戶界面,用于選擇 Excel 文件并指定分組列,然后將數據按照分組保存到不同的 Excel 文件中
步驟 1: 導入所需的庫
import tkinter as tk # 導入 tkinter 模塊,用于創(chuàng)建圖形用戶界面 from tkinter import filedialog # 導入 filedialog 子模塊,用于打開文件對話框 import pandas as pd # 導入 pandas 庫,用于數據處理 import os # 導入 os 模塊,用于文件和目錄操作
步驟 2: 定義函數,用于打開文件對話框并選擇 Excel 文件路徑
def browse_file(): # 打開文件對話框,限定文件類型為 Excel 文件 (*.xlsx) filepath = filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx")]) # 清空文件路徑輸入框,并將選定的文件路徑插入到輸入框中 file_entry.delete(0, tk.END) file_entry.insert(0, filepath)
步驟 3: 定義函數,用于處理數據并將其按指定列分組保存為多個 Excel 文件
def process_data(): # 獲取輸入文件路徑和需要分組的列名 input_file = file_entry.get() group_columns = [column_entry.get() for column_entry in column_entries if column_entry.get()] # 檢查輸入是否完整 if not input_file or not group_columns: result_label.config(text="Please provide input file path and group columns.") return try: # 讀取 Excel 文件為 DataFrame,并按指定列進行分組 df = pd.read_excel(input_file) grouped = df.groupby(group_columns) # 創(chuàng)建用于存儲分組數據的文件夾 folder_name = "Splitted_Data" if not os.path.exists(folder_name): os.makedirs(folder_name) # 將每個分組的數據保存為單獨的 Excel 文件 for name, group in grouped: filename = f"{folder_name}/{'_'.join(name)}.xlsx" group.to_excel(filename, index=False) result_label.config(text="Data processing completed successfully.") except Exception as e: result_label.config(text=f"Error occurred: {str(e)}")
步驟 4: 創(chuàng)建 tkinter 窗口對象并設置標題
root = tk.Tk() root.title("Excel Data Grouping Tool") # 設置窗口標題
步驟 5: 創(chuàng)建標簽和輸入框,用于顯示和輸入 Excel 文件路徑
file_label = tk.Label(root, text="Excel File Path:") file_label.grid(row=0, column=0, padx=5, pady=5, sticky="w") file_entry = tk.Entry(root, width=50) file_entry.grid(row=0, column=1, padx=5, pady=5, sticky="we") browse_button = tk.Button(root, text="Browse", command=browse_file) browse_button.grid(row=0, column=2, padx=5, pady=5)
步驟 6: 創(chuàng)建標簽、輸入框和按鈕,用于指定分組列名
column_label = tk.Label(root, text="Group Columns:") column_label.grid(row=1, column=0, padx=5, pady=5, sticky="w") column_entry = tk.Entry(root, width=50) column_entry.grid(row=1, column=1, padx=5, pady=5, sticky="we") column_entries = [column_entry] add_column_button = tk.Button(root, text="Add Column", command=lambda: add_column_entry()) add_column_button.grid(row=1, column=2, padx=5, pady=5)
步驟 7: 創(chuàng)建函數,用于添加新的分組列輸入框
def add_column_entry(): new_column_entry = tk.Entry(root, width=50) new_column_entry.grid(row=len(column_entries) + 1, column=1, padx=5, pady=5, sticky="we") column_entries.append(new_column_entry)
步驟 8: 創(chuàng)建按鈕,用于處理數據
process_button = tk.Button(root, text="Process Data", command=process_data) process_button.grid(row=2, column=2, padx=5, pady=10, sticky="e") # 調整位置至右側
步驟 9: 創(chuàng)建標簽,用于顯示處理結果信息
result_label = tk.Label(root, text="") result_label.grid(row=len(column_entries) + 3, column=0, columnspan=3, padx=5, pady=5)
步驟 10: 啟動主事件循環(huán)
root.mainloop()
完整代碼
import tkinter as tk # 導入 tkinter 模塊,用于創(chuàng)建圖形用戶界面 from tkinter import filedialog # 導入 filedialog 子模塊,用于打開文件對話框 import pandas as pd # 導入 pandas 庫,用于數據處理 import os # 導入 os 模塊,用于文件和目錄操作 # 定義函數,用于打開文件對話框并選擇 Excel 文件路徑 def browse_file(): # 打開文件對話框,限定文件類型為 Excel 文件 (*.xlsx) filepath = filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx")]) # 清空文件路徑輸入框,并將選定的文件路徑插入到輸入框中 file_entry.delete(0, tk.END) file_entry.insert(0, filepath) # 定義函數,用于處理數據并將其按指定列分組保存為多個 Excel 文件 def process_data(): # 獲取輸入文件路徑和需要分組的列名 input_file = file_entry.get() group_columns = [column_entry.get() for column_entry in column_entries if column_entry.get()] # 檢查輸入是否完整 if not input_file or not group_columns: result_label.config(text="Please provide input file path and group columns.") return try: # 讀取 Excel 文件為 DataFrame,并按指定列進行分組 df = pd.read_excel(input_file) grouped = df.groupby(group_columns) # 創(chuàng)建用于存儲分組數據的文件夾 folder_name = "Splitted_Data" if not os.path.exists(folder_name): os.makedirs(folder_name) # 將每個分組的數據保存為單獨的 Excel 文件 for name, group in grouped: filename = f"{folder_name}/{'_'.join(name)}.xlsx" group.to_excel(filename, index=False) result_label.config(text="Data processing completed successfully.") except Exception as e: result_label.config(text=f"Error occurred: {str(e)}") # 創(chuàng)建 tkinter 窗口對象 root = tk.Tk() root.title("Excel Data Grouping Tool") # 設置窗口標題 # 創(chuàng)建標簽和輸入框,用于顯示和輸入 Excel 文件路徑 file_label = tk.Label(root, text="Excel File Path:") file_label.grid(row=0, column=0, padx=5, pady=5, sticky="w") file_entry = tk.Entry(root, width=50) file_entry.grid(row=0, column=1, padx=5, pady=5, sticky="we") browse_button = tk.Button(root, text="Browse", command=browse_file) browse_button.grid(row=0, column=2, padx=5, pady=5) # 創(chuàng)建標簽、輸入框和按鈕,用于指定分組列名 column_label = tk.Label(root, text="Group Columns:") column_label.grid(row=1, column=0, padx=5, pady=5, sticky="w") column_entry = tk.Entry(root, width=50) column_entry.grid(row=1, column=1, padx=5, pady=5, sticky="we") column_entries = [column_entry] add_column_button = tk.Button(root, text="Add Column", command=lambda: add_column_entry()) add_column_button.grid(row=1, column=2, padx=5, pady=5) # 創(chuàng)建函數,用于添加新的分組列輸入框 def add_column_entry(): new_column_entry = tk.Entry(root, width=50) new_column_entry.grid(row=len(column_entries) + 1, column=1, padx=5, pady=5, sticky="we") column_entries.append(new_column_entry) # 創(chuàng)建按鈕,用于處理數據 process_button = tk.Button(root, text="Process Data", command=process_data) process_button.grid(row=2, column=2, padx=5, pady=10, sticky="e") # 調整位置至右側 # 創(chuàng)建標簽,用于顯示處理結果信息 result_label = tk.Label(root, text="") result_label.grid(row=len(column_entries) + 3, column=0, columnspan=3, padx=5, pady=5) # 啟動主事件循環(huán) root.mainloop()
以上就是使用Python實現分組數據并保存到單獨的文件中 的詳細內容,更多關于Python分組數據的資料請關注腳本之家其它相關文章!
相關文章
Python基于tkinter canvas實現圖片裁剪功能
這篇文章主要介紹了Python基于tkinter canvas實現圖片裁剪功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11selenium+python自動化測試環(huán)境搭建步驟
在本文中小編給大家分享了關于selenium+python自動化測試環(huán)境搭建的相關步驟以及知識點內容,需要的朋友們參考學習下。2019-06-06