欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python讀取多個(gè)excel豎向拼接為一個(gè)excel的實(shí)現(xiàn)方法

 更新時(shí)間:2025年09月16日 08:49:25   作者:袁袁袁袁滿  
在Python中,可以使用pandas庫結(jié)合glob模塊來遍歷讀取多個(gè)Excel文件,并將它們豎向拼接為一個(gè)DataFrame對(duì)象,以下是完整的實(shí)現(xiàn)方法,需要的朋友可以參考下

在Python中,可以使用pandas庫結(jié)合glob模塊來遍歷讀取多個(gè)Excel文件,并將它們豎向拼接為一個(gè)DataFrame對(duì)象。以下是完整的實(shí)現(xiàn)方法:

方法1:使用glob匹配文件 + pd.concat()

import pandas as pd
import glob

# 1. 獲取所有Excel文件路徑(支持.xlsx和.xls)
excel_files = glob.glob('*.xlsx') + glob.glob('*.xls')  # 當(dāng)前目錄下所有Excel文件
# 或者指定路徑:glob.glob('/path/to/files/*.xlsx')

# 2. 讀取并拼接所有Excel文件
dfs = []
for file in excel_files:
    df = pd.read_excel(file)  # 可以添加參數(shù)如sheet_name='Sheet1'
    dfs.append(df)

# 3. 豎向拼接所有DataFrame
result = pd.concat(dfs, ignore_index=True)

# 4. 查看結(jié)果
print(result)

# 保存為一個(gè)xlsx
result.to_excel('匯總.xlsx')

方法2:使用列表推導(dǎo)式(更簡(jiǎn)潔)

import pandas as pd
import glob

# 讀取并拼接所有Excel文件
result = pd.concat([
    pd.read_excel(f) for f in glob.glob('*.xlsx') + glob.glob('*.xls')
], ignore_index=True)

print(result)
# 保存為一個(gè)xlsx
result.to_excel('匯總.xlsx')

方法3:處理多個(gè)Sheet的情況

如果需要讀取每個(gè)Excel文件的多個(gè)Sheet:

import pandas as pd
import glob

dfs = []
for file in glob.glob('*.xlsx'):
    # 獲取所有Sheet名稱
    sheets = pd.ExcelFile(file).sheet_names
    for sheet in sheets:
        df = pd.read_excel(file, sheet_name=sheet)
        dfs.append(df)

result = pd.concat(dfs, ignore_index=True)
# 保存為一個(gè)xlsx
result.to_excel('匯總.xlsx')

高級(jí)用法:添加文件來源列

如果需要知道每行數(shù)據(jù)來自哪個(gè)文件:

dfs = []
for file in glob.glob('*.xlsx'):
    df = pd.read_excel(file)
    df['source_file'] = file  # 添加來源文件列
    dfs.append(df)

result = pd.concat(dfs, ignore_index=True)
# 保存為一個(gè)xlsx
result.to_excel('匯總.xlsx')

注意事項(xiàng)

  1. 內(nèi)存管理:如果文件很大或很多,建議分批處理或使用chunksize參數(shù)
  2. 列一致性:確保所有Excel文件的列結(jié)構(gòu)相同,否則拼接后會(huì)出現(xiàn)很多NaN值
  3. 性能優(yōu)化:對(duì)于大量文件,可以使用tqdm顯示進(jìn)度條:
from tqdm import tqdm
dfs = []
for file in tqdm(glob.glob('*.xlsx')):
    dfs.append(pd.read_excel(file))
result = pd.concat(dfs, ignore_index=True)
 # 保存為一個(gè)xlsx
 result.to_excel('匯總.xlsx')
  • 異常處理:添加try-except塊處理損壞的文件
dfs = []
for file in glob.glob('*.xlsx'):
    try:
        dfs.append(pd.read_excel(file))
    except Exception as e:
        print(f"Error reading {file}: {str(e)}")

完整示例(推薦)

import pandas as pd
import glob

def read_and_concat_excels(pattern='*.xlsx', sheet_name=0, add_source=False):
    """
    讀取并拼接多個(gè)Excel文件
    
    參數(shù):
        pattern: 文件匹配模式 (如 'data/*.xlsx')
        sheet_name: 要讀取的Sheet名稱或索引
        add_source: 是否添加來源文件列
        
    返回:
        拼接后的DataFrame
    """
    dfs = []
    for file in glob.glob(pattern):
        try:
            df = pd.read_excel(file, sheet_name=sheet_name)
            if add_source:
                df['source_file'] = file
            dfs.append(df)
        except Exception as e:
            print(f"跳過文件 {file}: {str(e)}")
    
    if not dfs:
        raise ValueError("沒有找到可讀取的Excel文件")
    
    return pd.concat(dfs, ignore_index=True)

# 使用示例
combined_df = read_and_concat_excels(pattern='input_files/*.xlsx', add_source=True)
combined_df.to_excel('匯總.xlsx', index=False)

這種方法既健壯又靈活,可以處理大多數(shù)Excel文件拼接的場(chǎng)景。

到此這篇關(guān)于基于Python讀取多個(gè)excel豎向拼接為一個(gè)excel的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)Python讀取多個(gè)excel拼接為一個(gè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python3.6中Twisted模塊安裝的問題與解決

    Python3.6中Twisted模塊安裝的問題與解決

    這篇文章主要介紹了Python3.6中Twisted模塊安裝的問題與解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Python幫你微信頭像任意添加裝飾別再@微信官方了

    Python幫你微信頭像任意添加裝飾別再@微信官方了

    昨天朋友圈刷爆了@微信官方的梗,從起初的為頭像添加國旗,到最后的各種Book思議的需求…而我呢?下面跟隨小編一起學(xué)習(xí)Python幫你微信頭像任意添加裝飾別再@微信官方了,感興趣的朋友一起看看吧
    2019-09-09
  • Python+PyQt5實(shí)現(xiàn)自動(dòng)點(diǎn)擊神器

    Python+PyQt5實(shí)現(xiàn)自動(dòng)點(diǎn)擊神器

    這篇文章主要為大家詳細(xì)介紹了如何利用Python和PyQt5實(shí)現(xiàn)自動(dòng)點(diǎn)擊神器,旨在解決重復(fù)性的點(diǎn)擊工作,解放雙手,具有及時(shí)性和準(zhǔn)確性,需要的可以參考下
    2024-01-01
  • 關(guān)于Pycharm無法debug問題的總結(jié)

    關(guān)于Pycharm無法debug問題的總結(jié)

    今天小編就為大家分享一篇關(guān)于Pycharm無法debug問題的總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python計(jì)算階乘和的方法(1!+2!+3!+...+n!)

    python計(jì)算階乘和的方法(1!+2!+3!+...+n!)

    今天小編就為大家分享一篇python計(jì)算階乘和的方法(1!+2!+3!+...+n!),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • 如何利用Pyecharts可視化微信好友

    如何利用Pyecharts可視化微信好友

    這篇文章主要給大家介紹了關(guān)于如何利用Pyecharts可視化微信好友的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Pyecharts具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python中base64編碼簡(jiǎn)介

    python中base64編碼簡(jiǎn)介

    Base64是一種任意二進(jìn)制到文本字符串的編碼方法,常用于在URL、Cookie、網(wǎng)頁中傳輸少量二進(jìn)制數(shù)據(jù),Base64是一種用64個(gè)字符來表示任意二進(jìn)制數(shù)據(jù)的方法,這篇文章主要介紹了python中base64編碼,需要的朋友可以參考下
    2022-12-12
  • 手把手教你如何使python變?yōu)榭蓤?zhí)行文件

    手把手教你如何使python變?yōu)榭蓤?zhí)行文件

    對(duì)于exe可執(zhí)行文件,相信大家都不陌生,下面這篇文章主要給大家介紹了關(guān)于如何使python變?yōu)榭蓤?zhí)行文件的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • python+OpenCV人臉識(shí)別考勤系統(tǒng)實(shí)現(xiàn)的詳細(xì)代碼

    python+OpenCV人臉識(shí)別考勤系統(tǒng)實(shí)現(xiàn)的詳細(xì)代碼

    作為一個(gè)基于人臉識(shí)別算法的考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)教程,以下內(nèi)容將提供詳細(xì)的步驟和代碼示例。本教程將使用 Python 語言和 OpenCV 庫進(jìn)行實(shí)現(xiàn),需要的朋友可以參考下
    2023-05-05
  • Python如何在bool函數(shù)中取值

    Python如何在bool函數(shù)中取值

    這篇文章主要介紹了Python如何在bool函數(shù)中取值,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論