Python使用pandas批量處理Excel文件的實(shí)戰(zhàn)教程
日常辦公中,Excel 文件處理是最常見(jiàn)的需求。這篇文章用 pandas 實(shí)現(xiàn) 7 個(gè)最常用的 Excel 處理場(chǎng)景,代碼直接復(fù)制就能用。
一、讀取Excel
import pandas as pd
?
# 讀取全部sheet
df = pd.read_excel("數(shù)據(jù).xlsx")
?
# 讀取指定sheet
df = pd.read_excel("數(shù)據(jù).xlsx", sheet_name="Sheet1")
?
# 讀取前5行
df = pd.read_excel("數(shù)據(jù).xlsx", nrows=5)
?
# 指定某一列作為索引
df = pd.read_excel("數(shù)據(jù).xlsx", index_col="編號(hào)")二、查看數(shù)據(jù)
# 查看前5行 print(df.head()) ? # 查看基本信息(列名、類型、非空數(shù)量) print(df.info()) ? # 查看統(tǒng)計(jì)摘要(均值、標(biāo)準(zhǔn)差、四分位數(shù)) print(df.describe()) ? # 查看列名 print(df.columns.tolist())
三、數(shù)據(jù)篩選
# 篩選某一列等于某個(gè)值 df[df["城市"] == "北京"] ? # 多條件篩選(&表示且,|表示或) df[(df["城市"] == "北京") & (df["銷售額"] > 10000)] ? # 按某列的值篩選 df[df["姓名"].isin(["張三", "李四"])]
四、數(shù)據(jù)分組統(tǒng)計(jì)
# 按城市分組,求銷售額總和
df.groupby("城市")["銷售額"].sum()
?
# 分組后多個(gè)統(tǒng)計(jì)值
df.groupby("城市")["銷售額"].agg(["sum", "mean", "count"])
?
# 分組后保存為多個(gè)sheet
with pd.ExcelWriter("分組結(jié)果.xlsx") as writer:
? ?for city, group in df.groupby("城市"):
? ? ? ?group.to_excel(writer, sheet_name=city, index=False)五、合并多個(gè)Excel文件
import os
?
# 一個(gè)文件夾下多個(gè)Excel合并
path = "銷售數(shù)據(jù)"
all_data = []
for f in os.listdir(path):
? ?if f.endswith(".xlsx"):
? ? ? ?df = pd.read_excel(os.path.join(path, f))
? ? ? ?all_data.append(df)
?
result = pd.concat(all_data, ignore_index=True)
result.to_excel("合并結(jié)果.xlsx", index=False)
print(f"合并完成,共{len(result)}行")六、數(shù)據(jù)清洗
# 刪除空值
df.dropna(inplace=True)
?
# 填充空值
df.fillna(0, inplace=True)
df.fillna(method="ffill", inplace=True) ?# 用上一個(gè)值填充
?
# 刪除重復(fù)行
df.drop_duplicates(inplace=True)
?
# 替換特定值
df.replace("舊值", "新值", inplace=True)
?
# 修改列名
df.rename(columns={"舊名": "新名"}, inplace=True)七、保存Excel
# 保存為Excel
df.to_excel("結(jié)果.xlsx", index=False)
?
# 多個(gè)DataFrame保存到不同sheet
with pd.ExcelWriter("多表.xlsx") as writer:
? ?df1.to_excel(writer, sheet_name="北京", index=False)
? ?df2.to_excel(writer, sheet_name="上海", index=False)完整示例:從讀取到輸出
import pandas as pd
import os
?
# 讀取數(shù)據(jù)
df = pd.read_excel("銷售數(shù)據(jù).xlsx")
?
# 數(shù)據(jù)清洗
df.dropna(inplace=True)
df.drop_duplicates(inplace=True)
?
# 按城市統(tǒng)計(jì)銷售額
result = df.groupby("城市")["銷售額"].agg(["sum", "mean", "count"])
result = result.reset_index()
result.columns = ["城市", "總銷售額", "平均銷售額", "訂單數(shù)"]
?
# 保存結(jié)果
result.to_excel("銷售統(tǒng)計(jì)結(jié)果.xlsx", index=False)
print("處理完成!")總結(jié)
pandas 是 Python 數(shù)據(jù)處理的核心工具,上面的 7 個(gè)場(chǎng)景覆蓋了日常工作中最常見(jiàn)的需求。建議收藏這篇文章,下次處理 Excel 時(shí)直接復(fù)制代碼改路徑就行。
到此這篇關(guān)于Python使用pandas批量處理Excel文件的實(shí)戰(zhàn)教程的文章就介紹到這了,更多相關(guān)Python pandas批量處理Excel文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Selenium 模擬瀏覽器動(dòng)態(tài)加載頁(yè)面的實(shí)現(xiàn)方法
這篇文章主要介紹了Selenium 模擬瀏覽器動(dòng)態(tài)加載頁(yè)面的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Python實(shí)現(xiàn)釘釘發(fā)送報(bào)警消息的方法
今天小編就為大家分享一篇Python實(shí)現(xiàn)釘釘發(fā)送報(bào)警消息的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
python實(shí)現(xiàn)畫五角星和螺旋線的示例
今天小編就為大家分享一篇python實(shí)現(xiàn)畫五角星和螺旋線的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Python實(shí)現(xiàn)人生重開(kāi)模擬器小游戲講解
這篇文章主要介紹了Python實(shí)現(xiàn)人生重開(kāi)模擬器小游戲,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-01-01
Python多重分派multipledispatch庫(kù)的使用
multipledispatch庫(kù)為Python帶來(lái)了完整的多重分派能力,顯著提升了代碼的表達(dá)力和可維護(hù)性,本文就來(lái)詳細(xì)Python多重分派multipledispatch庫(kù)的使用,感興趣的可以了解一下2026-05-05
Python系統(tǒng)交互庫(kù)解析過(guò)程
本文介紹了Python中os、sys、subprocess等模塊及paramiko、Fabric、socket、requests等庫(kù)的核心功能,涵蓋文件操作、系統(tǒng)交互、進(jìn)程管理、網(wǎng)絡(luò)通信、數(shù)據(jù)處理等場(chǎng)景,并強(qiáng)調(diào)了安全使用YAML等格式的注意事項(xiàng)2025-07-07
執(zhí)行Django數(shù)據(jù)遷移時(shí)報(bào) 1091錯(cuò)誤及解決方法
這篇文章主要介紹了執(zhí)行Django數(shù)據(jù)遷移,報(bào)錯(cuò) 1091,需要的朋友可以參考下2019-10-10
Pandas 中的join函數(shù)應(yīng)用實(shí)現(xiàn)刪除多余的空行
這篇文章主要介紹了Pandas 中的join函數(shù)應(yīng)用實(shí)現(xiàn)刪除多余的空行,str.join也就是sequence要連接的元素序列,下面我們來(lái)看看他的作用實(shí)現(xiàn)刪除多余的空行,需要的小伙伴可以參考一下2022-02-02

