使用dataframes列以相同的顺序从另一个帧中选择行

时间:2016-11-27 16:57:12

标签: python pandas dataframe data-munging

这里需要一些pandas jump start:

考虑两个数据框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'])]

但这似乎不是解决方案 - 结果中的列idA中的值顺序不同。

1 个答案:

答案 0 :(得分:3)

您可以使用pd.merge

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