最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python合并兩個(gè)Excel文件的兩種主流方法

 更新時(shí)間:2025年08月18日 10:26:58   作者:detayun  
在日常數(shù)據(jù)處理中,合并Excel文件是常見(jiàn)需求,Python提供了多種庫(kù)(如pandas、openpyxl)來(lái)實(shí)現(xiàn)這一操作,本文將詳細(xì)介紹兩種主流方法,并附上完整代碼示例,幫助您高效完成Excel合并任務(wù),需要的朋友可以參考下

引言

在日常數(shù)據(jù)處理中,合并Excel文件是常見(jiàn)需求。Python提供了多種庫(kù)(如pandas、openpyxl)來(lái)實(shí)現(xiàn)這一操作。本文將詳細(xì)介紹兩種主流方法,并附上完整代碼示例,幫助您高效完成Excel合并任務(wù)。

方法一:使用pandas庫(kù)(推薦)

簡(jiǎn)介

pandas是Python中處理表格數(shù)據(jù)的核心庫(kù),支持快速讀取、合并和保存Excel文件。適用于縱向合并(追加數(shù)據(jù))橫向合并(按列拼接)。

安裝

pip install pandas openpyxl xlrd

場(chǎng)景1:縱向合并(追加數(shù)據(jù))

示例數(shù)據(jù)

假設(shè)有兩個(gè)Excel文件file1.xlsxfile2.xlsx,結(jié)構(gòu)如下:

file1.xlsx

NameAgeCity
Alice25New York
Bob30London

file2.xlsx

NameAgeCity
Charlie28Paris
David35Berlin

代碼示例

import pandas as pd

# 讀取兩個(gè)Excel文件
df1 = pd.read_excel('file1.xlsx')
df2 = pd.read_excel('file2.xlsx')

# 縱向合并(按行追加)
combined_df = pd.concat([df1, df2], ignore_index=True)

# 保存為新文件
combined_df.to_excel('combined.xlsx', index=False)

print("縱向合并完成!")

輸出結(jié)果

NameAgeCity
Alice25New York
Bob30London
Charlie28Paris
David35Berlin

場(chǎng)景2:橫向合并(按列拼接)

示例數(shù)據(jù)

假設(shè)file1.xlsx包含用戶(hù)信息,file2.xlsx包含訂單數(shù)據(jù),需按用戶(hù)ID合并:

file1.xlsx

UserIDName
1Alice
2Bob

file2.xlsx

UserIDOrder
1Book
2Laptop

代碼示例

import pandas as pd

# 讀取兩個(gè)Excel文件
df1 = pd.read_excel('file1.xlsx')
df2 = pd.read_excel('file2.xlsx')

# 按UserID列橫向合并
merged_df = pd.merge(df1, df2, on='UserID', how='inner')

# 保存為新文件
merged_df.to_excel('merged.xlsx', index=False)

print("橫向合并完成!")

輸出結(jié)果

UserIDNameOrder
1AliceBook
2BobLaptop

注意事項(xiàng)

  1. 列名一致性:縱向合并時(shí),確保兩個(gè)文件的列名完全一致(包括大小寫(xiě)和空格)。
  2. 索引處理:使用ignore_index=True重置合并后的索引。
  3. 去重操作:合并后可通過(guò)drop_duplicates()去除重復(fù)行。
  4. 內(nèi)存優(yōu)化:處理大型文件時(shí),可分塊讀?。?code>chunksize參數(shù))。

方法二:使用openpyxl庫(kù)(保留格式)

簡(jiǎn)介

openpyxl可直接操作Excel文件,支持保留原始格式(如字體、顏色),但代碼稍復(fù)雜。適用于需要保留樣式的場(chǎng)景。

安裝

pip install openpyxl

代碼示例(縱向合并)

from openpyxl import Workbook, load_workbook

# 加載第一個(gè)Excel文件
wb1 = load_workbook('file1.xlsx')
ws1 = wb1.active

# 加載第二個(gè)Excel文件
wb2 = load_workbook('file2.xlsx')
ws2 = wb2.active

# 創(chuàng)建新工作簿
new_wb = Workbook()
new_ws = new_wb.active

# 復(fù)制第一個(gè)文件的所有行
for row in ws1.iter_rows(values_only=True):
    new_ws.append(row)

# 復(fù)制第二個(gè)文件的所有行(跳過(guò)標(biāo)題行)
for row in ws2.iter_rows(min_row=2, values_only=True):
    new_ws.append(row)

# 保存新文件
new_wb.save('combined_openpyxl.xlsx')

print("使用openpyxl合并完成!")

優(yōu)勢(shì)與局限

  • 優(yōu)勢(shì):保留原始格式(如顏色、邊框)。
  • 局限:代碼復(fù)雜度高,不支持橫向合并。

方案對(duì)比

方法適用場(chǎng)景優(yōu)點(diǎn)缺點(diǎn)
pandas快速合并、數(shù)據(jù)清洗、橫向/縱向合并代碼簡(jiǎn)潔、支持大數(shù)據(jù)量無(wú)法保留格式
openpyxl保留Excel樣式、操作工作表結(jié)構(gòu)格式完全保留代碼復(fù)雜、性能較低

常見(jiàn)問(wèn)題解答

1. 如何合并多個(gè)Excel文件?

使用pandas可循環(huán)讀取多個(gè)文件:

import pandas as pd

all_dfs = []
for file in ['file1.xlsx', 'file2.xlsx', 'file3.xlsx']:
    df = pd.read_excel(file)
    all_dfs.append(df)

combined = pd.concat(all_dfs, ignore_index=True)

2. 合并時(shí)如何指定工作表?

使用sheet_name參數(shù):

df = pd.read_excel('file.xlsx', sheet_name='Sheet2')

3. 如何處理合并后的空值?

使用dropna()去除空行:

combined_df.dropna(inplace=True)

總結(jié)

  • 推薦方案
    • 數(shù)據(jù)清洗優(yōu)先:選擇pandas庫(kù),支持靈活的合并和清洗操作。
    • 保留格式優(yōu)先:使用openpyxl庫(kù),但僅適用于簡(jiǎn)單縱向合并。

通過(guò)本文的兩種方法,您可以輕松實(shí)現(xiàn)Excel文件的合并,并根據(jù)具體需求選擇最合適的工具。

到此這篇關(guān)于Python合并兩個(gè)Excel文件的兩種主流方法的文章就介紹到這了,更多相關(guān)Python合并Excel文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 人臉檢測(cè)實(shí)戰(zhàn)終極之OpenCV+Python實(shí)現(xiàn)人臉對(duì)齊

    人臉檢測(cè)實(shí)戰(zhàn)終極之OpenCV+Python實(shí)現(xiàn)人臉對(duì)齊

    這篇文章主要是為了演示如何使用 OpenCV、Python 和面部標(biāo)志從而實(shí)現(xiàn)對(duì)齊人臉。文中示例代碼對(duì)我們的工作或?qū)W習(xí)有一定的幫助,感興趣的小伙伴可以學(xué)習(xí)一下
    2021-12-12
  • django在保存圖像的同時(shí)壓縮圖像示例代碼詳解

    django在保存圖像的同時(shí)壓縮圖像示例代碼詳解

    這篇文章主要介紹了django在保存圖像的同時(shí)壓縮圖像,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 12步教你理解Python裝飾器

    12步教你理解Python裝飾器

    或許你已經(jīng)用過(guò)裝飾器,它的使用方式非常簡(jiǎn)單但理解起來(lái)困難(其實(shí)真正理解的也很簡(jiǎn)單),想要理解裝飾器,你需要懂點(diǎn)函數(shù)式編程的概念,python函數(shù)的定義以及函數(shù)調(diào)用的語(yǔ)法規(guī)則等,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Python實(shí)現(xiàn)Linux命令xxd -i功能

    Python實(shí)現(xiàn)Linux命令xxd -i功能

    這篇文章主要介紹了Python實(shí)現(xiàn)Linux命令xxd -i功能的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • Python Pytorch深度學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)

    Python Pytorch深度學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)

    今天小編就為大家分享一篇關(guān)于Pytorch神經(jīng)網(wǎng)絡(luò)的文章,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-10-10
  • python中isalpha () 和 isdigit ()的區(qū)別小結(jié)

    python中isalpha () 和 isdigit ()的區(qū)別小結(jié)

    本文主要介紹了python中isalpha () 和 isdigit ()的區(qū)別小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-04-04
  • PyCharm自動(dòng)化測(cè)試的實(shí)現(xiàn)

    PyCharm自動(dòng)化測(cè)試的實(shí)現(xiàn)

    本文主要介紹了PyCharm自動(dòng)化測(cè)試的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • Python遞歸實(shí)現(xiàn)打印多重列表代碼

    Python遞歸實(shí)現(xiàn)打印多重列表代碼

    今天小編就為大家分享一篇Python遞歸實(shí)現(xiàn)打印多重列表代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Python鍵鼠操作自動(dòng)化庫(kù)PyAutoGUI簡(jiǎn)介(小結(jié))

    Python鍵鼠操作自動(dòng)化庫(kù)PyAutoGUI簡(jiǎn)介(小結(jié))

    這篇文章主要介紹了Python鍵鼠操作自動(dòng)化庫(kù)PyAutoGUI簡(jiǎn)介,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • pyramid配置session的方法教程

    pyramid配置session的方法教程

    這篇文章主要介紹了pyramid如何配置session,大家可以參考使用
    2013-11-11

最新評(píng)論

永仁县| 禄丰县| 汕头市| 莒南县| 嘉荫县| 专栏| 延边| 宜兰县| 屏边| 邯郸市| 登封市| 泰和县| 通许县| 永宁县| 扎兰屯市| 阿克苏市| 巧家县| 桐乡市| 遂溪县| 石景山区| 长岛县| 龙江县| 仪征市| 金寨县| 天津市| 天祝| 大名县| 九寨沟县| 谷城县| 博罗县| 张掖市| 肃南| 乐安县| 南靖县| 池州市| 专栏| 昭苏县| 平昌县| 金门县| 霞浦县| 株洲县|