下面是我的數據框與兩級索引。我只想將外部索引轉換爲列。我期望的輸出將是2X2數據幀,而不是現在的情況,而不是4X1數據幀。請問你們能幫忙嗎?要做到這一點如何轉置僅基於外部索引的多級pandas數據幀
0
0 0 232
1 3453
1 0 443
1 3241
下面是我的數據框與兩級索引。我只想將外部索引轉換爲列。我期望的輸出將是2X2數據幀,而不是現在的情況,而不是4X1數據幀。請問你們能幫忙嗎?要做到這一點如何轉置僅基於外部索引的多級pandas數據幀
0
0 0 232
1 3453
1 0 443
1 3241
鑑於你有,你可以使用拆散()在0級
import pandas as pd
import numpy as np
index = pd.MultiIndex.from_tuples([(0,0),(0,1),(1,0),(1,1)])
df = pd.DataFrame([[1],[2],[3],[4]] , index=index, columns=[0])
print df.unstack(level=[0])
0
0 1
0 1 3
1 2 4
一種方式是重置索引,然後轉動對指數的level_1
表的索引,並使用level_0
爲列和0
的值。示例 -
df.reset_index().pivot(index='level_1',columns='level_0',values=0)
演示 -
In [66]: index = pd.MultiIndex.from_tuples([(0,0),(0,1),(1,0),(1,1)])
In [67]: df = pd.DataFrame([[1],[2],[3],[4]] , index=index, columns=[0])
In [68]: df
Out[68]:
0
0 0 1
1 2
1 0 3
1 4
In [69]: df.reset_index().pivot(index='level_1',columns='level_0',values=0)
Out[69]:
level_0 0 1
level_1
0 1 3
1 2 4
後來,如果你願意,你可以爲columns
設置了index
的.name
屬性以及空字符串或任何你想要的,如果你不」那裏想要level_*
。
作品多指數...感謝一噸! –
很高興我能幫到你。我還想要求您接受答案(通過點擊答案左側的勾號),這對社區會有幫助。 –