2016-11-27 64 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