pd.read_excel 是 Python 中 Pandas 庫提供的一個非常好用的函數,它可以方便地讀取 Excel 文件,並將其轉化成 Pandas DataFrame 格式,讓我們可以用 Python 語言處理 Excel 數據。在本文中,我們將從多個方面來詳細闡述 pd.read_excel 的用法和特性。
一、讀取 Excel 文件
pd.read_excel 在最基本的情況下,可以用來讀取 Excel 文件並返回一個 Pandas DataFrame。下面是一個簡單的例子,演示了如何讀取一個名為 “example.xlsx” 的 Excel 文件:
import pandas as pd
df = pd.read_excel("example.xlsx")
print(df.head())
這裡我們使用了 Pandas 的 import 語句導入了庫,然後使用 read_excel 函數讀取了 Excel 文件,並將讀取的結果賦值給一個名為 df 的 Pandas DataFrame。最後我們用 print 函數輸出了 DataFrame 的前 5 行數據。
二、讀取指定的 Excel 表格和工作表
有時候,一個 Excel 文件中會有多個工作表(sheet),我們可以使用 read_excel 函數的 sheet_name 參數來指定要讀取的工作表名稱或編號(從 0 開始)。下面是一個演示讀取一個 Excel 文件中指定工作表和指定列的例子:
df = pd.read_excel("example.xlsx", sheet_name="Sheet1", usecols=["A", "B"])
print(df.head())
使用參數 sheet_name 指定要讀取的工作表名稱 “Sheet1″,使用參數 usecols 指定要讀取的列標題(A、B)。最後同樣使用 print 函數輸出 DataFrame 的前 5 行數據。
三、讀取 Excel 文件中的非表頭數據
有時候,Excel 文件中的數據並不是從第一行開始保存的,而是在表頭之下的某一行之後。如果我們要讀取文件中這個位置的數據該怎麼辦呢?這時候我們可以使用 read_excel 函數中的 header 參數和 skiprows 參數。header 參數用來設置指定行數作為表頭,skiprows 參數用來跳過指定行數。
df = pd.read_excel("example.xlsx", header=3, skiprows=2)
print(df.head())
上面的例子中,我們使用了 header=3,跳過了前三行的表頭,再使用 skiprows=2,跳過了兩行,最後讀取了非表頭數據的內容所在的行。可以看到,通過這種方法,我們可以準確地讀取數據。
四、更改 Excel 中時間格式
在 Excel 中,時間日期數據可以使用不同的格式進行保存。有時候,我們讀取到的時間日期數據在 Pandas DataFrame 中可能不是我們期望的格式,這時候我們需要處理一下。Pandas 的 read_excel 函數提供了一個 parse_dates 參數,可以自動解析包含日期時間的列。
df = pd.read_excel("example.xlsx", parse_dates=["Date"])
print(df.head())
在上面的例子中,我們使用 parse_dates=[“Date”] 參數,讓 Pandas 自動解析包含日期時間的 “Date” 列,並以正確的格式進行顯示。
五、更改數據類型
有時候,讀取的數據在 Pandas 中的數據類型可能不是我們期望的類型。這時候,我們可以使用 converters 參數,將讀取的數據類型進行轉換。
def to_int(val):
return int(val)
df = pd.read_excel("example.xlsx", converters={"A": to_int})
print(df.head())
上面的例子中,我們定義了一個函數 to_int,將讀取的字元串轉換成整數。然後在 read_excel 函數中,指定 converters={“A”: to_int},將 “A” 列的數據類型轉換成整數。
六、從 Excel 中篩選特定數據
在處理 Excel 數據時,有些時候我們只需要特定的一些數據,這時候可以使用 Pandas DataFrame 中的查詢(query)功能。
df = pd.read_excel("example.xlsx")
subset = df.query('Name == "John"')
print(subset)
上面的例子中,我們使用 read_excel 函數讀取了整個 Excel 文件。然後使用 query 函數,選擇了所有 “Name” 列為 John 的數據,並將結果輸出。這裡的 query 條件可以是任何有效的 Python 表達式。
七、使用資料庫連接讀取 Excel 文件
如果我們的 Excel 文件非常大,一次性讀取可能會導致內存不足,這時候可以考慮使用 Pandas 的 read_sql 函數,通過資料庫連接一行一行地讀取 Excel 數據。
import sqlite3
conn = sqlite3.connect("example.db")
c = conn.cursor()
c.execute(
"""
CREATE TABLE example (Name text, Age integer, City text);
"""
)
df = pd.read_excel("example.xlsx")
df.to_sql("example", conn, if_exists="append", index=False)
subset = pd.read_sql(
"""
SELECT * FROM example WHERE Name = 'John'
""",
conn,
)
print(subset)
上面的例子中,我們使用了 SQLite 資料庫作為例子資料庫,並在資料庫中創建了一個名為 “example” 的表格。然後使用 read_excel 函數讀取了 Excel 文件,並將其內容寫入了資料庫的 “example” 表格中。其中的 to_sql 函數用於將 DataFrame 寫入資料庫中。最後我們使用 read_sql 函數,從 SQLite 資料庫中選擇 “Name” 列為 John 的數據,並將其輸出。
通過上面的例子,我們可以看出,pd.read_excel 可以拓展出非常多有用的功能,讓我們可以高效地處理 Excel 數據。在實際開發中,我們可以結合以上方法,靈活地處理 Excel 數據,高效地把數據轉化成有用的信息。
原創文章,作者:SDTJX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/369283.html