2016-09-06 78 views
2

我试图在熊猫数据框中设置一个新列(实际上是两列),数据来自其他数据框。根据其他数据框向熊猫数据框添加新列

我有以下两种dataframes(他们是为了这个目的为例,原来dataframes是如此大得多):

In [116]: df0 
Out[116]:  
    A B C 
0 0 1 0 
1 2 3 2 
2 4 5 4 
3 5 5 5 


In [118]: df1 
Out[118]: 
    A D E 
0 2 7 2 
1 6 5 5 
2 4 3 2 
3 0 1 0 
4 5 4 6 
5 0 1 0 

而且我希望有一个新的数据框(或添加到DF0,等等)如:

df2: 
    A B C D E 
0 0 1 0 1 0 
1 2 3 2 7 2 
2 4 5 4 3 2 
3 5 5 5 4 6 

正如可以看到,在所得到的数据帧不存在与A = 6的行,其存在于DF1但不是在DF0。此外,A = 0的行在df1中被复制,但不在df2的结果中。

实际上,我在选择方法时遇到了问题。我可以这样做:

df1.loc[df1['A'].isin(df0['A'])] 

但我不知道如何申请跟上的唯一数据(请记住,DF1可以包含重复的数据)的一部分,并添加两列到DF2数据集(或将其添加到df0)。 我在这里搜索,我不知道如何应用像groupby,甚至地图。

有什么想法?

谢谢!

回答

2

这是merge基本应用(docs):

import pandas as pd 
df2 = pd.merge(df0,df1, left_index=True, right_index=True) 
+0

我想它应该是:'pd.merge(DF0,DF1,上= [ 'A'])' – MaxU