[英]How to unify multiple columns in pandas dataframe into a multiindex?
我有一個這樣的數據框:
pd.DataFrame(data={"a": [1,2], "b": [3,4], "c": [5,6]}, index=[0,1])
以表格形式:
a b c
0 1 3 5
1 2 4 6
我想將它轉換為這樣的數據框:
pd.DataFrame(data={"foo":[1,2,3,4,5,6]},
index=pd.MultiIndex.from_tuples(
[('a', 0), ('a', 1), ('b', 0), ('b', 1), ('c', 0), ('c', 1)],
names=("var", "id")))
表格形式:
foo
var id
a 0 1
1 2
b 0 3
1 4
c 0 5
1 6
實現這一目標的最簡單方法是什么?
首先創建一個新的多索引
df.columns = pd.MultiIndex.from_product([df.columns.tolist(), ['foo']])
print(df)
a b c
foo foo foo
0 1 3 5
1 2 4 6
然后使用.stack
和.swaplevel()
df.stack(0).swaplevel(0,1)
foo
a 0 1
b 0 3
c 0 5
a 1 2
b 1 4
c 1 6
嘗試unstack
out = df.unstack().to_frame('foo')
Out[146]:
foo
a 0 1
1 2
b 0 3
1 4
c 0 5
1 6
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.