基於標籤的 Pandas DataFrame 索引


介紹

Pandas 庫在資料分析和處理領域佔據主導地位。由於其多功能性和易用性,Pandas DataFrame(一種二維帶標籤的資料結構)已成為全球資料科學家和分析師的首選工具。基於標籤的索引能夠以清晰自然的方式訪問資料,是 DataFrame 的一項強大功能。本文將對 Pandas DataFrame 基於標籤的索引進行全面解釋,並輔以示例,以便更好地理解。

理解 Pandas DataFrame 中的基於標籤的索引

在 Pandas 中,“基於標籤的索引”指的是使用顯式標籤在 DataFrame 中檢索資料。這些標籤可能是行和列名,它們提高了資料處理過程的可讀性和直觀性。`.loc` 和 `.at` 是基於標籤索引的兩種主要方法。

在 DataFrame 中,`.loc` 屬性是基於標籤索引的主要訪問方法。它接受標籤,並根據這些標籤返回 DataFrame 或 Series 中的資料。

與 `.loc` 方法類似,`.at` 方法用於使用標籤在 DataFrame 中檢索資料。但是,`.at` 提供更快的訪問速度,適用於檢索單個標量值。雖然 `.at` 在速度方面具有優勢,但它不提供布林索引,並且始終按標籤而不是按整數位置訪問。

探索 Pandas DataFrame 中基於標籤的索引:實際示例

示例 1:使用 `.loc` 進行基於標籤的索引

下面的示例展示了在 DataFrame 中使用 `.loc` 進行基於標籤索引的方法。

import pandas as pd

# Create a simple DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
        'Age': [28, 24, 35, 32],
        'City': ['New York', 'Los Angeles', 'San Francisco', 'Houston']}
df = pd.DataFrame(data)

# Set 'Name' as the index
df.set_index('Name', inplace=True)

# Access data using loc
print(df.loc['Anna'])

輸出

Age              24
City    Los Angeles
Name: Anna, dtype: object

在這個例子中,我們建立了一個 DataFrame 並將 'Name' 列指定為索引。然後,我們使用 `df.loc['Anna']` 來獲取與 'Anna' 相關的所有資訊。

示例 2:使用 `.at` 更快地訪問標量值

以下是使用 `.at` 進行快速基於標籤的標量查詢的方法。

import pandas as pd

# Create a simple DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
        'Age': [28, 24, 35, 32],
        'City': ['New York', 'Los Angeles', 'San Francisco', 'Houston']}
df = pd.DataFrame(data)

# Set 'Name' as the index
df.set_index('Name', inplace=True)

# Access data using at
print(df.at['Peter', 'Age'])

輸出

35

在這個例子中,我們使用 `df.at['Peter', 'Age']` 快速從 DataFrame 中檢索 Peter 的年齡。

示例 3:使用 `.loc` 進行基於標籤的切片

也可以使用 `.loc` 屬性對 DataFrame 進行切片。

import pandas as pd

# Create a simple DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda', 'Paul', 'Diana'],
        'Age': [28, 24, 35, 32, 38, 27],
        'City': ['New York', 'Los Angeles', 'San Francisco', 'Houston', 'Chicago', 'Seattle']}
df = pd.DataFrame(data)

# Set 'Name' as the index
df.set_index('Name', inplace=True)
#Slicing using loc
print(df.loc['Anna':'Linda'])

輸出

       Age           City
Name                     
Anna    24    Los Angeles
Peter   35  San Francisco
Linda   32        Houston

在這個例子中,我們使用 `df.loc['Anna':'Linda']` 對 DataFrame 進行了切片,它檢索從 'Anna' 到 'Linda'(包含這兩個值)的所有行。

利用基於標籤索引的強大功能

Pandas DataFrame 的基於標籤的索引有很多優點。最明顯的優點是提高了程式碼的可讀性和理解性,因為使用了有意義的標籤來代替整數位置。隨著資料操作複雜性的增加,這將變得越來越重要。

此外,基於標籤的索引提供了一種更可靠的訪問資料的方法。即使 DataFrame 的行被重新排列,基於標籤的索引仍將繼續檢索準確的資料。

結論

有效地訪問和操作資料在資料分析領域至關重要。在 Pandas DataFrame 中,使用 `.loc` 和 `.at` 屬性進行基於標籤的索引提供了一種簡單有效的資料訪問方法。使用顯式標籤代替整數索引可以使程式碼更具可讀性和可維護性。掌握基於標籤的索引,並結合實際示例,應該能夠為任何基於 Pandas 的 Python 資料處理任務奠定堅實的基礎。所以,趕快在你的資料分析專案中充分發揮基於標籤的索引的潛力吧!

更新於:2023年7月17日

666 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告