2016-11-27 105 views
0

使用dataframes列選擇行從另一個框架需要一些熊貓跳從這裏開始:以相同的順序

考慮兩個數據幀AB。兩者均包含一列id具有標識符值:

A: id  valA 
    8  ? 
    2  ? 
    4  ? 

B: id  valB valC 
    1  ?  ?  
    4  ?  ?  
    3  ?  ?  
    8  ?  ?  
    2  ?  ?  

我需要一個版本數據幀B,其含有僅包含標識符從A[id],在完全相同的順序如在A的行。那就是:

B': id  valB  valC 
    8  ?  ? 
    2  ?  ? 
    4  ?  ? 

我認爲這是大熊貓的基本操作,但似乎我缺少的詞彙,現在谷歌它。

我已經試過

B.loc[B['id'].isin(A['id'])] 

但這似乎並沒有成爲解決方案 - 在結果列id沒有值的順序相同A

+0

這就是所謂的'reindex_axis',但不像你的問題。 – Boud

回答

3

上面你在你的評論`id`可能不是唯一的,這將是與你的情況不兼容的一個何況你可以使用pd.merge

In [92]: A.merge(B) 
Out[92]: 
    id valA valB valC 
0 8 ? ? ? 
1 2 ? ? ? 
2 4 ? ? ? 
+0

這是最乾淨的方式。 'how ='inner''是合併方法的默認值。 – DataSwede