
- Python Pandas 教程
- Python Pandas - 首頁
- Python Pandas - 簡介
- Python Pandas - 環境搭建
- Python Pandas - 基礎
- Python Pandas - 資料結構簡介
- Python Pandas - 索引物件
- Python Pandas - 面板
- 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 中的高階重新索引和對齊功能使 Pandas 中靈活的資料操作和重塑成為可能。透過使用諸如 reindex()、swaplevel() 和 reorder_levels() 等方法,您可以輕鬆地在 Pandas 中執行資料操作和重構任務。
使用多級索引重新索引 DataFrame
重新索引允許您更改 DataFrame 的索引以匹配一組新的標籤。Pandas 的 DataFrame.reindex() 方法用於沿多級索引的特定級別重新索引資料。
示例
讓我們看看使用 df.reindex() 方法重新索引多級索引 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) # New index for reindexing new_index = [('A', 'one'), ('foo', 'two'), ('B', 'two'), ('A', 'three'), ('B', 'one'), ('A', 'two')] # Reindexing the DataFrame reindexed_df = df.reindex(new_index) print('\nReindexed DataFrame:\n', reindexed_df)
以下是上述程式碼的輸出 -
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.0 | 2.0 |
foo | two | NaN | NaN |
B | two | 7.0 | 8.0 |
A | three | 1.0 | 1.0 |
B | one | 5.0 | 6.0 |
A | two | 3.0 | 4.0 |
使用 swaplevel() 更改多級索引級別
在多級索引 DataFrame 中,您可以使用 DataFrame.swaplevel() 方法交換級別的順序。這對於重新排序 DataFrame 的級別以跨不同層次結構級別執行操作很有用。
示例
以下示例使用 df.swaplevel() 方法交換多級索引 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) # Swap the levels of the original DataFrame swapped_df = df.swaplevel(0, 1, axis=0) print('\nDataFrame After Swapping Levels:\n', swapped_df)
以下是上述程式碼的輸出 -
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 | ||
---|---|---|---|
one | A | 1 | 2 |
two | A | 3 | 4 |
three | A | 1 | 1 |
one | B | 5 | 6 |
two | B | 7 | 8 |
three | B | 2 | 2 |
使用 reorder_levels() 重新排序多級索引級別
與上述方法類似,Pandas 的 MultiIndex.reorder_levels() 方法也用於重新排序多級索引物件的索引級別。
示例
此示例使用 Pandas 的 MultiIndex.reorder_levels() 方法重新排序多級索引物件的級別。
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) # Reordering levels reordered_df = df.reorder_levels([1, 0], axis=0) print('\nDataFrame after reordering levels:\n', reordered_df)
以下是上述程式碼的輸出 -
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 | ||
---|---|---|---|
one | A | 1 | 2 |
two | A | 3 | 4 |
three | A | 1 | 1 |
one | B | 5 | 6 |
two | B | 7 | 8 |
three | B | 2 | 2 |
廣告