亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用Python實現分組數據并保存到單獨的文件中

 更新時間:2024年04月09日 08:17:33   作者:懸崖上的金魚  
當處理大型數據集時,通常需要將數據分組,并將每個分組的數據保存到單獨的文件中,本文將使用 Python 中的 pandas 庫來實現這一目標,需要的可以參考下

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分組數據的資料請關注腳本之家其它相關文章!

相關文章

  • Pandas中Series和DataFrame的索引實現

    Pandas中Series和DataFrame的索引實現

    這篇文章主要介紹了Pandas中Series和DataFrame的索引實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • 使用Python完成15位18位身份證的互轉功能

    使用Python完成15位18位身份證的互轉功能

    這篇文章主要介紹了使用Python完成15位18位身份證的互轉功能,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • pycharm Tab鍵設置成4個空格的操作

    pycharm Tab鍵設置成4個空格的操作

    這篇文章主要介紹了pycharm Tab鍵設置成4個空格的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 利用Python實現從PDF到CSV的轉換

    利用Python實現從PDF到CSV的轉換

    將PDF轉換為CSV極大地提升了數據的實用價值,Python作為一種強大的編程語言,能夠高效完成這一轉換任務,本文將介紹如何利用Python實現從PDF到CSV的轉換,需要的朋友可以參考下
    2024-07-07
  • python k-近鄰算法實例分享

    python k-近鄰算法實例分享

    這個算法主要工作是測量不同特征值之間的距離,有個這個距離,就可以進行分類了。簡稱kNN。
    2014-06-06
  • 給Python中的MySQLdb模塊添加超時功能的教程

    給Python中的MySQLdb模塊添加超時功能的教程

    這篇文章主要介紹了給Python中的MySQLdb模塊添加超時功能的教程,timeout功能在服務器的運維當中非常有用,需要的朋友可以參考下
    2015-05-05
  • python set內置函數的具體使用

    python set內置函數的具體使用

    這篇文章主要介紹了python set內置函數的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Python基于tkinter canvas實現圖片裁剪功能

    Python基于tkinter canvas實現圖片裁剪功能

    這篇文章主要介紹了Python基于tkinter canvas實現圖片裁剪功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Python中方法鏈的使用方法

    Python中方法鏈的使用方法

    這篇文章主要為大家詳細介紹了Python中方法鏈的使用方法,方法鏈(method chaining)是面向對象的編程語言中的一種常見語法,對方法鏈感興趣的小伙伴們可以參考一下
    2016-02-02
  • selenium+python自動化測試環(huán)境搭建步驟

    selenium+python自動化測試環(huán)境搭建步驟

    在本文中小編給大家分享了關于selenium+python自動化測試環(huán)境搭建的相關步驟以及知識點內容,需要的朋友們參考學習下。
    2019-06-06

最新評論