2016-09-06 79 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