1
假設其中有這樣一個索引的數據幀:大熊貓從多指標得到行的名稱(樣品名稱)
df = pd.DataFrame(np.array([[1,2,3,4],[4,5,6,1],['A','B','C','A'],['a','b','a','b']]).T,columns=['d1','d2','type','subtype'])
df.set_index(['type', 'subtype','d1']).unstack('d1')
df = pd.DataFrame(np.array([[1,2,3,4],[4,5,6,1],['A','B','C','A'],['a','b','a','b']]).T,columns=['d1','d2','type','subtype'])
df = df.set_index(['type', 'subtype','d1']).unstack('d1')
df.index
MultiIndex(levels=[['A', 'B', 'C'], ['a', 'b']],
labels=[[0, 0, 1, 2], [0, 1, 1, 0]],
names=['type', 'subtype'])
我使用數據框的值,一些分析(如PCA)。以後,我想繪製結果並根據索引命名點。我知道行名稱的信息由多重索引中的關卡和標籤提供。我怎樣才能生成一個列表給我每個樣本的名稱(例如['Aa','Ab','Bb','Ca'])?
難道我真的要做到這一點:?
l1 = df.index.get_level_values(0).values.tolist()
l2 = df.index.get_level_values(1).values.tolist()
[i1 + i2 for i1, i2 in zip(l1,l2)]
將會產生我:
['Aa', 'Ab', 'Bb', 'Ca']
或者是有一個更優雅的解決方案?