
- Python Pandas 教程
- Python Pandas - 首頁
- Python Pandas - 簡介
- Python Pandas - 環境搭建
- Python Pandas - 基礎
- Python Pandas - 資料結構介紹
- Python Pandas - 索引物件
- Python Pandas - Panel
- Python Pandas - 基本功能
- Python Pandas - 索引和資料選擇
- Python Pandas - Series
- Python Pandas - Series
- Python Pandas - Series 物件切片
- Python Pandas - Series 物件的屬性
- Python Pandas - Series 物件的算術運算
- Python Pandas - 將 Series 轉換為其他物件
- Python Pandas - DataFrame
- Python Pandas - DataFrame
- Python Pandas - 訪問 DataFrame
- Python Pandas - DataFrame 物件切片
- Python Pandas - 修改 DataFrame
- Python Pandas - 從 DataFrame 中刪除行
- Python Pandas - DataFrame 的算術運算
- Python Pandas - I/O 工具
- Python Pandas - I/O 工具
- Python Pandas - 使用 CSV 格式
- Python Pandas - 讀取和寫入 JSON 檔案
- Python Pandas - 從 Excel 檔案讀取資料
- Python Pandas - 將資料寫入 Excel 檔案
- Python Pandas - 使用 HTML 資料
- Python Pandas - 剪貼簿
- Python Pandas - 使用 HDF5 格式
- Python Pandas - 與 SQL 的比較
- Python Pandas - 資料處理
- Python Pandas - 排序
- Python Pandas - 重新索引
- Python Pandas - 迭代
- Python Pandas - 級聯
- Python Pandas - 統計函式
- Python Pandas - 描述性統計
- Python Pandas - 使用文字資料
- Python Pandas - 函式應用
- Python Pandas - 選項和自定義
- Python Pandas - 視窗函式
- Python Pandas - 聚合
- Python Pandas - 合併/連線
- Python Pandas - 多級索引
- Python Pandas - 多級索引基礎
- Python Pandas - 多級索引
- Python Pandas - 使用多級索引的高階重新索引
- Python Pandas - 重新命名多級索引標籤
- Python Pandas - 對多級索引進行排序
- Python Pandas - 二元運算
- Python Pandas - 二元比較運算
- Python Pandas - 布林索引
- Python Pandas - 布林掩碼
- Python Pandas - 資料重塑和透視
- Python Pandas - 透視表
- Python Pandas - 堆疊和取消堆疊
- Python Pandas - 熔化
- Python Pandas - 計算虛擬變數
- Python Pandas - 分類資料
- Python Pandas - 分類資料
- Python Pandas - 分類資料的排序和分類
- Python Pandas - 分類資料的比較
- Python Pandas - 處理缺失資料
- Python Pandas - 缺失資料
- Python Pandas - 填充缺失資料
- Python Pandas - 缺失值的插值
- Python Pandas - 刪除缺失資料
- Python Pandas - 對缺失資料進行計算
- Python Pandas - 處理重複項
- Python Pandas - 重複資料
- Python Pandas - 計數和檢索唯一元素
- Python Pandas - 重複標籤
- Python Pandas - 分組和聚合
- Python Pandas - GroupBy
- Python Pandas - 時間序列資料
- Python Pandas - 日期功能
- Python Pandas - Timedelta
- Python Pandas - 稀疏資料結構
- Python Pandas - 稀疏資料
- Python Pandas - 視覺化
- Python Pandas - 視覺化
- Python Pandas - 附加概念
- Python Pandas - 警告和陷阱
- Python Pandas 有用資源
- Python Pandas - 快速指南
- Python Pandas - 有用資源
- Python Pandas - 討論
Python Pandas - 多級索引
pandas 中的多級索引也稱為分層索引,允許您在行和列上具有多個級別的索引。多級索引透過使用 DataFrame 或 Series 基於多個鍵的多個索引器和切片器,幫助您以更復雜的方式訪問和操作資料。您可以使用標籤元組而不是單個標籤來索引資料,從而更輕鬆地處理結構化或分層資料。
在本教程中,您將學習如何在 pandas 中使用多級索引進行高階索引和選擇,包括部分索引和切片。
使用多級索引的基本索引
使用多級索引的索引類似於單索引 DataFrame,但是在這裡您也可以使用元組根據多個級別進行索引。
示例
這是一個使用帶.loc[]索引器的level名稱選擇資料集子集的基本示例。
import pandas as pd # Create a MultiIndex object index = pd.MultiIndex.from_tuples([('A', 'one'), ('A', 'two'), ('B', 'one'), ('B', 'two')]) # Create a DataFrame data = [[1, 2], [3, 4], [5, 6], [7, 8]] df = pd.DataFrame(data, index=index, columns=['X', 'Y']) # Display the input DataFrame print('Original MultiIndexed DataFrame:\n',df) # Select all rows based on the level label print('Selected Subset:\n',df.loc['A'])
以下是上述程式碼的輸出:
Original MultiIndexed DataFrame:
X | Y | ||
---|---|---|---|
A | one | 1 | 2 |
two | 3 | 4 | |
B | one | 5 | 6 |
two | 7 | 8 |
X | Y | |
---|---|---|
one | 1 | 2 |
two | 3 | 4 |
示例
這是另一個示例,它演示了使用帶.loc[]索引器的級別標籤元組對多級索引 DataFrame 進行索引。
import pandas as pd # Create a MultiIndex object index = pd.MultiIndex.from_tuples([('A', 'one'), ('A', 'two'), ('B', 'one'), ('B', 'two')]) # Create a DataFrame data = [[1, 2], [3, 4], [5, 6], [7, 8]] df = pd.DataFrame(data, index=index, columns=['X', 'Y']) # Display the input DataFrame print('Original MultiIndexed DataFrame:\n',df) # Index the data based on the tuple of level labels print('Selected Subset:') print(df.loc[('B', 'one')])
以下是上述程式碼的輸出:
Original MultiIndexed DataFrame:
X | Y | ||
---|---|---|---|
A | one | 1 | 2 |
two | 3 | 4 | |
B | one | 5 | 6 |
two | 7 | 8 |
使用多級索引資料的高階索引
可以使用.loc索引器對多級索引 DataFrame 進行高階索引,它允許您在多級索引 DataFrame 中指定更復雜的條件和選擇。
示例
以下是如何使用帶.loc[]索引器的高階索引從多級索引 DataFrame 中選擇資料的示例。
import pandas as pd # Create a MultiIndex object index = pd.MultiIndex.from_tuples([('A', 'one'), ('A', 'two'), ('B', 'one'), ('B', 'two')]) # Create a DataFrame data = [[1, 2], [3, 4], [5, 6], [7, 8]] df = pd.DataFrame(data, index=index, columns=['X', 'Y']) # Display the input DataFrame print('Original MultiIndexed DataFrame:\n',df) # Select specific element print('Selected data:') print(df.loc[('A', 'two'), 'Y'])
以下是上述程式碼的輸出:
Original MultiIndexed DataFrame:
X | Y | ||
---|---|---|---|
A | one | 1 | 2 |
two | 3 | 4 | |
B | one | 5 | 6 |
two | 7 | 8 |
使用多級索引的布林索引
Pandas 多級索引物件允許您應用布林索引來根據條件過濾資料。它將建立一個掩碼並將其應用於 DataFrame。
示例
以下示例演示了將布林索引應用於多級索引 DataFrame 以選擇 'X' 大於 2 的行。
import pandas as pd # Create a MultiIndex object index = pd.MultiIndex.from_tuples([('A', 'one'), ('A', 'two'), ('B', 'one'), ('B', 'two')]) # Create a DataFrame data = [[1, 2], [3, 4], [5, 6], [7, 8]] df = pd.DataFrame(data, index=index, columns=['X', 'Y']) # Display the input DataFrame print('Original MultiIndexed DataFrame:\n',df) # Select data based on the boolean indexing print('Selected data:') mask = df['X'] > 2 print(df[mask])
以下是上述程式碼的輸出:
Original MultiIndexed DataFrame:
X | Y | ||
---|---|---|---|
A | one | 1 | 2 |
two | 3 | 4 | |
B | one | 5 | 6 |
two | 7 | 8 |
X | Y | ||
---|---|---|---|
A | two | 3 | 4 |
B | one | 5 | 6 |
two | 7 | 8 |
使用多級索引的切片
Pandas 多級索引 DataFrame 切片的工作方式類似於使用單索引切片。但是對於複雜的切片,我們需要提供元組。
示例
此示例演示瞭如何使用 pandas 切片器和.loc[]索引器將切片應用於多級索引 DataFrame。
import pandas as pd # Create a MultiIndex object index = pd.MultiIndex.from_tuples([('A', 'one'), ('A', 'two'), ('A', 'three'),('B', 'one'), ('B', 'two'), ('B', 'three')]) # Create a DataFrame data = [[1, 2], [3, 4], [1, 1], [5, 6], [7, 8], [2, 2]] df = pd.DataFrame(data, index=index, columns=['X', 'Y']) # Display the input DataFrame print('Original MultiIndexed DataFrame:\n',df) # Slice rows between 'A' and 'B' print('Sliced data:') print(df.loc[('A', 'B'),['one','three'],:])
以下是上述程式碼的輸出:
Original MultiIndexed DataFrame:
X | Y | ||
---|---|---|---|
A | one | 1 | 2 |
two | 3 | 4 | |
three | 1 | 1 | |
B | one | 5 | 6 |
two | 7 | 8 | |
three | 2 | 2 |
X | Y | ||
---|---|---|---|
A | one | 1 | 2 |
three | 1 | 1 | |
B | one | 5 | 6 |
three | 2 | 2 |
廣告