2017-03-08 91 views
0

我有两个数据框我想要合并。主数据帧人口仅合并Python中的某些列

Pop: 
     Country Name Country Code Year Population CountryYear 
    0 Aruba   ABW    1960 54208.0  ABW-1960 
    1 Andorra   AND    1960 13414.0  AND-1960 

我有一个类似的表与国家GDP

GDP:

Country Name Country Code Year GDP    CountryYear 
0 Aruba   ABW    1960 0.000000e+00  ABW-1960 
1 Andorra   AND    1960 0.000000e+00  AND-1960 

我要的是有一个新的框架,联合,有字段:

Country Name 
Country Code 
Year  
Population 
CountryYear 

从人口表及表中的相应的GDP基于CountryYear和h大道,这是唯一的列添加到它。

我试过,但我得到了重复表格:

df_merged = pd.merge(poptransposed, gdptransposed, left_on=['CountryYear'], 
       right_on=['CountryYear'], 
       how='inner') 
df_merged.head() 


    Country Name_x Country Code_x Year_x Population CountryYear Country Name_y Country Code_y Year_y GDP 
Aruba ABW 1960 54208.0 ABW-1960 Aruba ABW 1960 0.000000e+00 
Andorra AND 1960 13414.0 AND-1960 Andorra AND 1960 0.000000e+00 
+0

只需选择都想要来自结果的列:'df_merged [[Country Name_x','Country Code_x','Year_x','Population',...]]'。 – DyZ

+0

试试这个:'df_merged = pd.merge(poptransposed,gdptransposed [['CountryYear','GDP']] on ='CountryYear')' – MaxU

+0

合并自动合并到公共列名上。应该只是poptransposed.merge(gdptransposed)。告诉我,如果我错了。我正在打电话,无法验证。 – piRSquared

回答