2016-01-29 49 views
0

我需要編寫一個謂詞函數來確定兩個索引是否具有相同的元組。這可能已經解決了一百萬次。Predicate函數確定兩個索引是否具有相同的級別

鑑於以下兩個措施表

    wave 
respondent source  
0   1   1 
1   1   1 
2   1   2 
3   1   2 
4   1   1 
0   2   2 
1   2   2 
2   2   1 
3   2   1 
4   2   2 


        score 
respondent source  
0   1   1 
1   1   1 
2   1   2 
3   1   2 
4   1   1 


same_indexes(df_a, df_b) 

輸出將

[True, True, True, True, True, False, False, False, False, False] 

應該理想地處理不同訂單指數和需要處理指標的變量數。

+0

我不明白所需的算法。爲什麼在輸出中有8個項目,分別是10行和5行?另外,當你說「index」時,你的意思是一行的索引條目,這是一個像「(0,1)',(1,1)'等的元組?請注意,在Pandas術語中,「索引」是_all_索引條目的集合,並且每個「DataFrame」都具有_one_索引。 –

+0

對不起,應該有每行輸出(10項)。當我說索引時,我的意思是一行索引條目,這是一個像(0,1) –

+0

OK這樣的元組,所以如果我理解正確:你想要通過'df_a'每一行的東西,獲取該行的索引條目,並告訴你在'df_b'中是否有一行具有相同的索引條目? –

回答

1

一隻熊貓Index(或MultiIndex,如在你的問題)實現isin method這將做你正在尋找什麼。使用它作爲df_a.index.isin(df_b.index)

+0

嗯這看起來非常接近我需要的,但結果不是我所期望的'object_to_filter.index.isin(filter_index) array([False,False,False,False,False,False,False,False,False, False],dtype = bool)' –

+0

這是你在問題中得到的輸出結果嗎?如果是這樣,那不是我得到的。當然,我正在使用Python 3,但結果應該是一樣的;我無法想象Python 3和2.7之間會有什麼區別。 –

相關問題