如何使用 Python 讀取 Excel 數(shù)據(jù)
使用 Python 讀取 Excel 數(shù)據(jù)的詳細(xì)教程
Python 提供了多種讀取 Excel 文件的方式,最常用的庫是 pandas 和 openpyxl。下面我將詳細(xì)介紹如何使用這兩個(gè)庫來讀取 Excel 文件,并包含一些實(shí)用示例,幫助你撰寫博客。
1. 安裝必要的依賴
首先,需要確保安裝了 pandas 和 openpyxl 庫,這兩個(gè)庫可以幫助我們輕松讀取 Excel 文件。
你可以使用以下命令安裝它們:
pip install pandas openpyxl
pandas:用于數(shù)據(jù)處理和分析,它內(nèi)置了讀取 Excel 文件的功能。openpyxl:一個(gè)讀寫 Excel 2007 及以上版本的 Excel 文件的庫。
2. 讀取 Excel 文件
假設(shè)你有一個(gè) Excel 文件 data.xlsx,包含如下數(shù)據(jù):
| Name | Age | City |
|---|---|---|
| John | 25 | New York |
| Alice | 30 | London |
| Bob | 22 | Tokyo |
你可以使用 pandas 來讀取文件的內(nèi)容。
import pandas as pd
# 讀取Excel文件
df = pd.read_excel('data.xlsx')
# 顯示數(shù)據(jù)
print(df)輸出:
Name Age City
0 John 25 New York
1 Alice 30 London
2 Bob 22 Tokyo
3. 讀取特定的工作表
Excel 文件通常包含多個(gè)工作表。可以通過指定 sheet_name 來讀取特定的工作表。例如,假設(shè) data.xlsx 文件中有一個(gè)名為 Sheet2 的工作表:
df = pd.read_excel('data.xlsx', sheet_name='Sheet2')
print(df)你也可以通過索引來指定工作表:
df = pd.read_excel('data.xlsx', sheet_name=0) # 讀取第一個(gè)工作表4. 讀取多張工作表
如果你想一次性讀取 Excel 文件中的所有工作表,可以使用 sheet_name=None,它會(huì)返回一個(gè)包含多個(gè) DataFrame 的字典。
dfs = pd.read_excel('data.xlsx', sheet_name=None)
# 遍歷所有工作表
for sheet, data in dfs.items():
print(f"工作表名: {sheet}")
print(data)5. 只讀取特定列
有時(shí),你只需要讀取 Excel 文件中的部分列。可以通過 usecols 參數(shù)指定需要讀取的列。
df = pd.read_excel('data.xlsx', usecols=['Name', 'City'])
print(df)輸出:
Name City
0 John New York
1 Alice London
2 Bob Tokyo
你也可以使用列的索引來讀取特定列,例如:
df = pd.read_excel('data.xlsx', usecols=[0, 2]) # 讀取第一和第三列
print(df)6. 處理缺失數(shù)據(jù)
在讀取 Excel 數(shù)據(jù)時(shí),可能會(huì)遇到空白單元格。你可以使用 pandas 處理這些缺失數(shù)據(jù)。例如,可以通過 na_values 參數(shù)將特定的值識(shí)別為 NaN,或者使用 fillna() 方法填充缺失值。
# 將特定值識(shí)別為NaN
df = pd.read_excel('data.xlsx', na_values=['N/A', 'NA'])
# 填充缺失數(shù)據(jù)
df.fillna(value={'Age': 0, 'City': 'Unknown'}, inplace=True)
print(df)7. 將 Excel 數(shù)據(jù)轉(zhuǎn)換為其他格式
有時(shí)你可能需要將讀取的 Excel 數(shù)據(jù)保存為其他格式,例如 CSV 文件或 JSON 文件。pandas 允許你輕松實(shí)現(xiàn)這一點(diǎn)。
# 保存為CSV文件
df.to_csv('data.csv', index=False)
# 保存為JSON文件
df.to_json('data.json', orient='records')8. 讀取大文件和優(yōu)化性能
如果 Excel 文件非常大,可能會(huì)導(dǎo)致內(nèi)存不足或讀取速度較慢。pandas 提供了一些方法來優(yōu)化性能,例如使用 chunksize 分塊讀取數(shù)據(jù)。
# 分塊讀取Excel文件,每次讀取100行
chunks = pd.read_excel('large_data.xlsx', chunksize=100)
for chunk in chunks:
print(chunk)9. 使用 openpyxl 讀取 Excel
openpyxl 更適合需要對(duì) Excel 文件進(jìn)行更底層操作的場景,如讀取和修改單元格樣式、公式等。以下是一個(gè)簡單的讀取示例:
from openpyxl import load_workbook
# 加載Excel工作簿
wb = load_workbook('data.xlsx')
# 選擇工作表
sheet = wb['Sheet1']
# 讀取指定單元格的值
for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, values_only=True):
print(row)10. 更多的 Excel 讀取功能
你可以使用 pandas 提供的更多選項(xiàng),例如:
skiprows: 跳過特定行數(shù)nrows: 讀取指定行數(shù)header: 設(shè)置自定義標(biāo)題行
# 跳過前兩行并讀取5行數(shù)據(jù)
df = pd.read_excel('data.xlsx', skiprows=2, nrows=5)
print(df)總結(jié)
通過 pandas 和 openpyxl,你可以輕松讀取 Excel 文件,并進(jìn)行各種數(shù)據(jù)處理操作。pandas 更適合快速、簡單的數(shù)據(jù)分析,而 openpyxl 則適合需要對(duì) Excel 文件進(jìn)行更深入控制的場景。
到此這篇關(guān)于使用 Python 讀取 Excel 數(shù)據(jù)的詳細(xì)教程的文章就介紹到這了,更多相關(guān) Python 讀取 Excel 數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用pyglet庫完整實(shí)現(xiàn)漢諾塔游戲流程詳解
這篇文章主要介紹了Python使用pyglet庫完整實(shí)現(xiàn)漢諾塔游戲流程,漢諾塔問題是一個(gè)遞歸問題,也可以使用非遞歸法來解決,這個(gè)問題不僅是一個(gè)數(shù)學(xué)和邏輯問題,也是一個(gè)很好的教學(xué)工具,可以用來教授遞歸、算法和邏輯思考等概念,需要的朋友可以參考下2007-02-02
pandas中字典和dataFrame的相互轉(zhuǎn)換
有時(shí)候需要把dic轉(zhuǎn)換為DataFrame格式,便于查看和存儲(chǔ),下面這篇文章主要給大家介紹了關(guān)于pandas中字典和dataFrame相互轉(zhuǎn)換的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
python實(shí)現(xiàn)合并兩個(gè)排序的鏈表
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)合并兩個(gè)排序的鏈表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03
使用Python實(shí)現(xiàn)網(wǎng)頁表格轉(zhuǎn)換為markdown
在日常工作中,我們經(jīng)常需要從網(wǎng)頁上復(fù)制表格數(shù)據(jù),并將其轉(zhuǎn)換成Markdown格式,本文將使用Python編寫一個(gè)網(wǎng)頁表格轉(zhuǎn)Markdown工具,需要的可以參考下2025-05-05
零基礎(chǔ)也能看懂的python內(nèi)置csv模塊教程
這篇博客就為你介紹一個(gè)知識(shí)點(diǎn),python 內(nèi)置模塊 csv 。讓大家一文就看懂csv csv(Comma-Separated Values)文件是什么?以及python 中的 csv 文件清晰解法讀取文件寫入文件 csv 文件其它說明2021-11-11

