我有一個這樣的資料框:
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
實作這一目標的最簡單方法是什么?
uj5u.com熱心網友回復:
嘗試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
uj5u.com熱心網友回復:
首先創建一個新的多索引
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/494875.html
