我有這樣的pandas MultiIndex對(duì)象:>>> import pandas as pd>>> arrays = [[1, 1, 2, 2], ['red', 'blue', 'red', 'blue']]>>> multi = pd.MultiIndex.from_arrays(arrays, names=('number', 'color'))>>> print(multi)MultiIndex(levels=[[1, 2], ['blue', 'red']], labels=[[0, 0, 1, 1], [1, 0, 1, 0]], names=['number', 'color'])我想從另一個(gè)來(lái)源附加第三個(gè)索引列。>>> idx = pd.Index(['a', 'a', 'a', 'b'], name='letter')最終結(jié)果應(yīng)該是MultiIndex包含所有三列的 a :>>> pd.MagicFunctionICanNotFind(multi, idx)MultiIndex(levels=[[1, 2], ['blue', 'red'], ['a', 'b']], labels=[[0, 0, 1, 1], [1, 0, 1, 0], [0, 0, 0, 1]], names=['number', 'color', 'letter'])當(dāng)我嘗試使用該MultiIndex.append()函數(shù)時(shí),它將我的新索引值連接到我的索引對(duì)象的底部,而不是作為一個(gè)新級(jí)別。我還查看了這個(gè)想要做類(lèi)似事情的問(wèn)題,但是它正在使用數(shù)據(jù)框,并且出于超出此問(wèn)題范圍的長(zhǎng)期復(fù)雜原因,我正在使用索引對(duì)象。我一直在嘗試使用values兩個(gè)索引對(duì)象的基礎(chǔ)的一切都變得相當(dāng)復(fù)雜,以至于它似乎不是最好的前進(jìn)道路。這必須是 Pandas 代碼庫(kù)中相對(duì)頻繁發(fā)生的事情,有沒(méi)有優(yōu)雅的解決方案?
1 回答
神不在的星期二
TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
創(chuàng)建一個(gè)模擬 DataFrame 并使用set_index:
pd.DataFrame(index=multi).set_index(idx, append=True).index
MultiIndex(levels=[[1, 2], ['blue', 'red'], ['a', 'b']],
labels=[[0, 0, 1, 1], [1, 0, 1, 0], [0, 0, 0, 1]],
names=['number', 'color', 'letter'])
添加回答
舉報(bào)
0/150
提交
取消
