怎樣使用Pandas批量拆分與合併Excel文件?

2022-01-18 螞蟻學Python

實例演示:

將一個大Excel等份拆成多個Excel

將多個小Excel合併成一個大Excel並標記來源

work_dir="./course_datas/c15_excel_split_merge"
splits_dir=f"{work_dir}/splits"

import os
if not os.path.exists(splits_dir):
    os.mkdir(splits_dir)

0、讀取源Excel到Pandas

import pandas as pd

df_source = pd.read_excel(f"{work_dir}/crazyant_blog_articles_source.xlsx")

df_source.head()


idtitletags02585Tensorflow怎樣接收變長列表特徵python,tensorflow,特徵工程12583Pandas實現數據的合併concatpandas,python,數據分析22574Pandas的Index索引有什麼用途?pandas,python,數據分析32564機器學習常用數據集大全python,機器學習42561一個數據科學家的修煉路徑數據分析

df_source.index

RangeIndex(start=0, stop=258, step=1)

df_source.shape

(258, 3)

total_row_count = df_source.shape[0]
total_row_count

258

一、將一個大Excel等份拆成多個Excel

使用df.iloc方法,將一個大的dataframe,拆分成多個小dataframe

將使用dataframe.to_excel保存每個小Excel

1、計算拆分後的每個excel的行數


user_names = ["xiao_shuai", "xiao_wang", "xiao_ming", "xiao_lei", "xiao_bo", "xiao_hong"]


split_size = total_row_count // len(user_names)
if total_row_count % len(user_names) != 0:
    split_size += 1

split_size

43

2、拆分成多個dataframe

df_subs = []
for idx, user_name in enumerate(user_names):
    
    begin = idx*split_size
    
    end = begin+split_size
    
    df_sub = df_source.iloc[begin:end]
    
    df_subs.append((idx, user_name, df_sub))

3、將每個datafame存入excel

for idx, user_name, df_sub in df_subs:
    file_name = f"{splits_dir}/crazyant_blog_articles_{idx}_{user_name}.xlsx"
    df_sub.to_excel(file_name, index=False)

二、合併多個小Excel到一個大Excel

遍歷文件夾,得到要合併的Excel文件列表

分別讀取到dataframe,給每個df添加一列用於標記來源

使用pd.concat進行df批量合併

將合併後的dataframe輸出到excel

1. 遍歷文件夾,得到要合併的Excel名稱列表

import os
excel_names = []
for excel_name in os.listdir(splits_dir):
    excel_names.append(excel_name)
excel_names

['crazyant_blog_articles_0_xiao_shuai.xlsx',
 'crazyant_blog_articles_1_xiao_wang.xlsx',
 'crazyant_blog_articles_2_xiao_ming.xlsx',
 'crazyant_blog_articles_3_xiao_lei.xlsx',
 'crazyant_blog_articles_4_xiao_bo.xlsx',
 'crazyant_blog_articles_5_xiao_hong.xlsx']

2. 分別讀取到dataframe

df_list = []

for excel_name in excel_names:
    
    excel_path = f"{splits_dir}/{excel_name}"
    df_split = pd.read_excel(excel_path)
    
    username = excel_name.replace("crazyant_blog_articles_", "").replace(".xlsx", "")[2:]
    print(excel_name, username)
    
    df_split["username"] = username

    df_list.append(df_split)

crazyant_blog_articles_0_xiao_shuai.xlsx xiao_shuai
crazyant_blog_articles_1_xiao_wang.xlsx xiao_wang
crazyant_blog_articles_2_xiao_ming.xlsx xiao_ming
crazyant_blog_articles_3_xiao_lei.xlsx xiao_lei
crazyant_blog_articles_4_xiao_bo.xlsx xiao_bo
crazyant_blog_articles_5_xiao_hong.xlsx xiao_hong

3. 使用pd.concat進行合併

df_merged = pd.concat(df_list)

df_merged.shape

(258, 4)

df_merged.head()


idtitletagsusername02585Tensorflow怎樣接收變長列表特徵python,tensorflow,特徵工程xiao_shuai12583Pandas實現數據的合併concatpandas,python,數據分析xiao_shuai22574Pandas的Index索引有什麼用途?pandas,python,數據分析xiao_shuai32564機器學習常用數據集大全python,機器學習xiao_shuai42561一個數據科學家的修煉路徑數據分析xiao_shuai

df_merged["username"].value_counts()

xiao_hong     43
xiao_bo       43
xiao_shuai    43
xiao_lei      43
xiao_wang     43
xiao_ming     43
Name: username, dtype: int64

4. 將合併後的dataframe輸出到excel

df_merged.to_excel(f"{work_dir}/crazyant_blog_articles_merged.xlsx", index=False)


相關焦點

  • pandas數據分析之合併Excel文件
    我們希望依次將圖1的3份數據文件與「總名單.xlsx」合併,獲得如圖2所示的「合併文件」。二、解題過程pandas是基於numpy的數據分析模塊,提供了大量標準數據模型和高效操作大型數據集所需的工具,能夠快速便捷地進行數據分析和處理。我們今天就使用pandas模塊來編程解決合併Excel文件的問題。
  • Python神器Pandas讀取excel
    pandas可結合處理EXCEL非常之方便,平時常用的功能很多比如:批量合併文件夾下的excel文件;按某一欄位批量拆分excel文件;excel與資料庫聯動處理等03案例演示在使用這個庫前,要安裝python,建議安裝python3.8以後的版本穩定,然後確認自己是否已安裝
  • 5 分鐘學會使用Pandas 處理excel, 高效、優雅地完成工作!
    數據的流程,非常簡單直觀:讀取數據,存入內存(以dataframe形式,含行和列的二維數據結構),使用pandas內置方法處理數據,最後把結果導出至excel。第一步,使用pandas 的read_excel 方法讀取excel文件,natural language,多麼直接!
  • Python筆記:批量合併Excel文件信息
    (r"C:\Users\QDM\Desktop\python\{}".format(i)))df_concat = pd.concat(data_new)df_concat.to_csv(r"C:\Users\QDM\Desktop\合併後的新文件.csv",index = None)df_concat.to_excel(excel_writer = r"C:\Users\QDM\Desktop\合併後的新文件
  • Python筆記:用Python按條件拆分Excel或CSV等文件
    用Python批量拆分Excel文本信息只需要使用pandas模塊。
  • 使用pandas合併多個文檔
    首先,安裝pandas#sudo apt install python3
  • 合併/拆分 Excel?Python、VBA輕鬆自動化
    那麼該如何使用呢?Python 實現合併直接上代碼,說明見注釋:def merge_excel(dir):print('--- 執行合併 ---') filename_excel = [] # 存表名 frames
  • excel批量拆分工作簿,用VBA一鍵拆分,把數據分解到N個工作簿
    此時就需要使用批量處理的方法,可以用PQ,也可以用VBA,本文就分享用VBA來處理批量拆分工作簿,用VBA的好處在於,只要代碼寫好,不需要懂代碼,任何人都可以直接拿來用,其他辦法就需要對軟體操作有一些要求了。
  • pandas實現保存excel文件到不同的sheet中
    主題:pandas實現保存excel文件到不同的sheet中# 導入pandas庫import pandas as pd# 讀取excel文件df = pd.read_excel這份數據是BAT公司2020年1月份的工資數據,但是由於excel中使用了短日期格式,並不會顯示到天,而我們實際也是具體到月的一個格式。所以,進行一下處理。
  • WPS教程:比Excel更好用的拆分合併技巧
    WPS表格的合併、拆分功能確實比Excel好用,我們不妨通過案例在WPS和Excel中做一個對比演示。WPS表格操作合併同類項可以讓表格看起來更簡潔。WPS表格中合併同類項非常簡單,選中單元格區域,點擊「合併相同單元格」即可一鍵完成。
  • 使用Pandas讀寫操作excel
    2、準備好excel數據表格3、使用Pandas讀取excel數據df = pd.read_excel('路徑',sheet_name='excel中的哪個表,表名/位置')如果不使用sheet_name='***',默認讀取第一張表import pandas as pdimport xlrd#讀取sheet_name='table1'的數據df
  • 手把手教你4種方法用Python批量實現多Excel多Sheet合併
    前兩天給大家分享了Python自動化文章:手把手教你利用Python輕鬆拆分Excel為多個CSV文件,而後在Python進階交流群裡邊有讀者遇到一個問題,他有很多個Excel表格,他需要對這些Excel文件進行合併。
  • pdf批量操作合併文件
    今天為大家介紹一款界面簡潔、操作簡單的PDF合併工具,能快速方便地合併批量圖片、PDF文件、word/excel/ppt,簡單、高效、滿足各種合併需求。多種合併方式,根據您的喜好排序,PDF文件可在編輯。輕鬆使用密碼保護的PDF文件,快速合併報告/電子書/數據表。
  • 使用pandas進行文件讀寫
    pandas是數據分析的利器,既然是處理數據,首先要做的當然是從文件中將數據讀取進來。
  • python項目實踐分享:使用pandas處理大型CSV文件
    當dialect設置為excel的時候,默認Dialect的值如下:2.csv.writer(csvfilc, dialcct='excer', **fmtparams),用於寫入CSV文件。參數同上。來看一個使用例子。
  • 使用word郵件合併功能批量生成文件
    工作中在分發通知、工資單及各種文件時,通常要將excel表中的數據以固定的格式填入word中,然後再發送給對應的人,如給經銷商發年會邀請函,其中經銷商名單就需要填入word模板中,如果要邀請很多經銷商來參加年會,那麼一個一個的錄入效率會很低,使用word郵件合併功能就能快速解決這類問題
  • Python利用pandas讀取excel數據批量寫入mysql
    mysql資料庫中;筆者腦海中及時就想到了用pandas裡的read_excel,用xlrd/openpyxl實現起來相對麻煩一些,為快速完成任務,用read_excel節省了很大一部分時間。new_filename = date_str + '.' + file_extension[len(file_extension)-1]return new_filename4.提取excel文件上傳的二進位流數據並保存到文件夾下用於pandas讀取:def write_file_to_dir(file_dir, file_metas)
  • 懂Excel就能輕鬆入門Python數據分析包pandas(十五):拆分數據
    後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言這是本系列第16篇的文章,之前有小夥伴私信我說,這系列例子太簡單了,能給點實際點的例子嗎。好吧,這篇來看看如何用 pandas 拆分數據到各個 Excel 文件。
  • Python 實現批量分類匯總並保存xlsx文件
    上一篇文件用VBA介紹了如何實現一鍵按列分類匯總並保存單獨文件,代碼有幾十行,而且一旦數據量多了,效果可能不盡如人意。
  • Python 按分組批量導出 Excel 文件
    接下來我們就實現 Python 按分組批量導出文件。數據與需求我們還是使用我們的測試數據集, 這個數據集的 team 欄位就是分組依據:import pandas as pddf = pd.read_excel('https://www.gairuo.com/file/data/team.xlsx')df.head()''' name team Q1 Q2