2017-07-25 96 views
1

篩選我有這個兩個dataframes:的Python /熊貓 - 根據其他數據幀的指數

df1: 
       Value 
dude_id 
123    x 
543    y 
984    z 


df2: 
      Value 
id 
123   R 
498   S 
543   D 
984   X 
009   Z 

我想要的方式,它只包含存在於df1的索引鍵過濾df2。它應該是這樣的:

df2: 
      Value 
id 
123   R 
543   D 
984   X 

我試過如下:

df2.filter(like=df.index, axis=0) 

但是它帶我去了以下錯誤:

ValueError: The truth value of a Int64Index is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 

我缺少什麼?

回答

3

使用loc

In [952]: df2.loc[df1.index] 
Out[952]: 
     Value 
dude_id 
123   R 
543   D 
984   X 

而且,你可以重命名索引名

In [956]: df2.loc[df1.index].rename_axis('id') 
Out[956]: 
    Value 
id 
123  R 
543  D 
984  X