基於標籤的 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 資料處理任務奠定堅實的基礎。所以,趕快在你的資料分析專案中充分發揮基於標籤的索引的潛力吧!