鋒哥原創的Pandas2?Python數據處理與分析 視頻教程:??
2025版 Pandas2 Python數據處理與分析 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili
unstack()
是 pandas 中用于數據重塑的重要方法,它與 stack()
互為逆操作。unstack()
的主要功能是將行索引的某一層級轉換為列索引,從而將數據從長格式轉換為寬格式。
基本語法
DataFrame.unstack(level=-1, fill_value=None)
參數說明
-
level (默認為
-1
):-
指定要移動到列索引的行索引層級
-
可以是整數(層級位置)、字符串(層級名稱)或列表(多個層級)
-
-1
表示最內層(默認值)
-
-
fill_value (默認為
None
):-
用于替換缺失值的填充值
-
如果不指定,缺失值將顯示為 NaN
-
1,基本操作:將行索引轉換為列索引
import pandas as pd
?
# 創建多級索引的 Series
index = pd.MultiIndex.from_tuples([('A', 'X'), ('A', 'Y'),('B', 'X'), ('B', 'Y')
])
s = pd.Series([1, 2, 3, 4], index=index)
print("原始Series:")
print(s)
執行 unstack():result = s.unstack()
print("\nunstack() 結果:")
print(result)
2,指定要轉換的層級
import pandas as pd
?
# 創建三級索引的 Series
index = pd.MultiIndex.from_tuples([('I', 'A', 'X'), ('I', 'A', 'Y'),('II', 'B', 'X'), ('II', 'B', 'Y')
])
s = pd.Series([10, 20, 30, 40], index=index)
print("初始數據:")
print(s)
# 轉換不同層級
print("轉換最內層 (level=-1):")
print(s.unstack()) ?# 默認轉換最內層
?
print("\n轉換第一層 (level=0):")
print(s.unstack(level=0))
?
print("\n轉換第二層 (level=1):")
print(s.unstack(level=1))