使用 Python 讀取 Excel 檔案

Vaibhav Vaibhav 2023年10月10日
  1. 在 Python 中使用 pandas 庫讀取 Excel 檔案
  2. 使用 Python 中的 xlrd 庫讀取 Excel 檔案
  3. 在 Python 中通過 Excel 檔案執行的任務示例
使用 Python 讀取 Excel 檔案

Python 程式語言以其在資料科學領域的使用而聞名。資料科學通常涉及處理資料並藉助曲線圖(例如線圖、小提琴圖、直方圖和熱圖)以及數學計算(例如均值、中值、眾數、概率、方差等)進行分析。Python 更合適的是它使檔案讀取和操作非常無縫。由於資料通常以流行的檔案格式表示,例如 xlsxlsxcsvtxt 等,因此使用 Python 處理它們是小菜一碟。

本文將通過一些示例介紹如何使用 Python 讀取 excel 檔案。例如,我們將考慮一個示例 excel 檔案,你可以從此處下載該檔案,以便我們都在同一頁面上。只需將其重新命名為 sample.xls 以使以下程式碼片段起作用,或更改以下程式碼片段本身中的檔名。

在 Python 中使用 pandas 庫讀取 Excel 檔案

在 Python 中,我們可以使用 pandas 庫來讀取 Excel 檔案。pandas 模組是一個用 Python 編寫的健壯、強大、快速和靈活的開源資料分析和操作庫。如果你的機器或虛擬環境中沒有安裝它,請使用以下命令。

  • 安裝 pandas: pip install pandaspip3 install pandas

請參閱以下程式碼以使用 pandas 模組讀取 excel 檔案。

import xlrd
import pandas

df = pandas.read_excel("sample.xls")
print("Columns")
print(df.columns)

輸出:

Columns
Index(['Segment', 'Country', 'Product', 'Discount Band', 'Units Sold',
       'Manufacturing Price', 'Sale Price', 'Gross Sales', 'Discounts',
       ' Sales', 'COGS', 'Profit', 'Date', 'Month Number', 'Month Name',
       'Year'],
      dtype='object')

使用 Python 中的 xlrd 庫讀取 Excel 檔案

在 Python 中,我們可以使用 xlrd 庫來讀取 excel 檔案。xlrd 模組是一個 Python 庫,用於讀取和格式化 Excel 檔案。如果你的機器或虛擬環境中沒有安裝它,請使用以下命令。

  • 要安裝 xlrd,請使用以下命令。
pip install xlrd

或者,

pip3 install xlrd

使用 xlrd 讀取 excel 檔案,請參考以下程式碼。

from xlrd import open_workbook

wb = open_workbook("sample.xls")
sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
columns = []
print("Columns")

for i in range(sheet.ncols):
    columns.append(sheet.cell_value(0, i))

print(columns)

輸出:

Columns
['Segment', 'Country', 'Product', 'Discount Band', 'Units Sold', 'Manufacturing Price', 'Sale Price', 'Gross Sales', 'Discounts', ' Sales', 'COGS', 'Profit', 'Date', 'Month Number', 'Month Name', 'Year']

下面簡單解釋一下上面程式碼的作用。它首先在 open_workbook() 函式的幫助下為 excel 檔案建立一個檔案描述符。然後它將檔案指標重置為 (0,0) 位置或左上角的單元格。接下來,它遍歷第一行並將所有列名儲存在一個變數中。通常,列名出現在第一行;這就是程式碼考慮該位置的原因。如果列名位於不同的行上,可以將語句 sheet.cell_value(0, i) 中的 0 值更改為他們希望的任何行號。本質上,(0, i) 代表 yx 座標,其中 y0,而 xi,考慮到原點 (0, 0) 出現在檔案的左上角。

在 Python 中通過 Excel 檔案執行的任務示例

讓我們看一些我們可以對 excel 檔案執行的簡單任務,以更好地理解這兩個庫。

列印 Excel 檔案的前 3 行

使用 pandas

import pandas

df = pandas.read_excel("sample.xls")
count = 3

for index, row in df.iterrows():
    print(row, end="\n\n")

    if index == count - 1:
        break

輸出:

Segment                         Government
Country                             Canada
Product                          Carretera
Discount Band                         None
Units Sold                          1618.5
Manufacturing Price                      3
Sale Price                              20
Gross Sales                        32370.0
Discounts                              0.0
 Sales                             32370.0
COGS                               16185.0
Profit                             16185.0
Date                   2014-01-01 00:00:00
Month Number                             1
Month Name                         January
Year                                  2014
Name: 0, dtype: object

Segment                         Government
Country                            Germany
Product                          Carretera
Discount Band                         None
Units Sold                          1321.0
Manufacturing Price                      3
Sale Price                              20
Gross Sales                        26420.0
Discounts                              0.0
 Sales                             26420.0
COGS                               13210.0
Profit                             13210.0
Date                   2014-01-01 00:00:00
Month Number                             1
Month Name                         January
Year                                  2014
Name: 1, dtype: object

Segment                          Midmarket
Country                             France
Product                          Carretera
Discount Band                         None
Units Sold                          2178.0
Manufacturing Price                      3
Sale Price                              15
Gross Sales                        32670.0
Discounts                              0.0
 Sales                             32670.0
COGS                               21780.0
Profit                             10890.0
Date                   2014-06-01 00:00:00
Month Number                             6
Month Name                            June
Year                                  2014
Name: 2, dtype: object

使用 xlrd

from xlrd import open_workbook

wb = open_workbook("sample.xls")
sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
count = 3

for i in range(1, count + 1):
    for j in range(sheet.ncols):
        print(sheet.cell_value(i, j), end=", ")

    print()

輸出:

Government, Canada, Carretera, None, 1618.5, 3.0, 20.0, 32370.0, 0.0, 32370.0, 16185.0, 16185.0, 41640.0, 1.0, January, 2014, 
Government, Germany, Carretera, None, 1321.0, 3.0, 20.0, 26420.0, 0.0, 26420.0, 13210.0, 13210.0, 41640.0, 1.0, January, 2014, 
Midmarket, France, Carretera, None, 2178.0, 3.0, 15.0, 32670.0, 0.0, 32670.0, 21780.0, 10890.0, 41791.0, 6.0, June, 2014, 

列印特定列的值

使用 pandas

import pandas

df = pandas.read_excel("sample.xls")
column = df.columns[4]
print(column)
print("-" * len(column))

for index, row in df.iterrows():
    print(row[column])

輸出:

Units Sold
----------
1618.5
1321.0
2178.0
888.0
2470.0
1513.0
921.0
2518.0
1899.0
1545.0
2470.0
2665.5
958.0
2146.0
345.0
615.0
292.0
974.0
2518.0
1006.0
367.0
883.0
549.0
788.0
2472.0
1143.0
1725.0
912.0
2152.0
1817.0
1513.0
1493.0
1804.0
2161.0
1006.0
1545.0
2821.0
345.0
2001.0
2838.0
2178.0
888.0
...

使用 xlrd

from xlrd import open_workbook

wb = open_workbook("sample.xls")
sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
column_index = 4
column = sheet.cell_value(0, column_index)
print(column)
print("-" * len(column))

for row in range(1, sheet.nrows):
    print(sheet.cell_value(row, column_index))

輸出:

Units Sold
----------
1618.5
1321.0
2178.0
888.0
2470.0
1513.0
921.0
2518.0
1899.0
1545.0
2470.0
2665.5
958.0
2146.0
345.0
615.0
292.0
974.0
2518.0
1006.0
367.0
883.0
549.0
788.0
2472.0
1143.0
1725.0
912.0
2152.0
1817.0
1513.0
1493.0
1804.0
2161.0
1006.0
1545.0
2821.0
345.0
2001.0
2838.0
2178.0
888.0
...
作者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

相關文章 - Python Excel