Pandas基于2个键合并2个数据库

时间:2014-09-10 18:46:46

标签: python pandas

我正在尝试合并两只pandas df' s:

  ISO 3年卡路里   AFG 1960 2300
  AFG 1961 2323
  ...
  美国2005 2800
  美国2006 2828

  ISO 3年国内生产总值   AFG 1980 3600
  AFG 1981 3636
  ...
  美国2049 10000
  美国2050 10100

我曾尝试pd.merge(df1,df2,on=['ISO3','Year'],how=outer)和其他许多人,但由于某种原因,它不起作用,有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

pd.merge(df1, df2, on=['ISO3', 'Year'], how='outer')应该可以正常工作。你能修改一下这个例子,或者发布一个df1,df2的具体例子,它没有产生正确的结果吗?

In [58]: df1 = pd.read_table('data', sep='\s+')

In [59]: df1
Out[59]: 
  ISO3  Year  Calories
0  AFG  1960      2300
1  AFG  1961      2323
2  USA  2005      2800
3  USA  2006      2828

In [60]: df2 = pd.read_table('data2', sep='\s+')

In [61]: df2
Out[61]: 
  ISO3  Year    GDP
0  AFG  1980   3600
1  AFG  1981   3636
2  USA  2049  10000
3  USA  2050  10100

In [62]: pd.merge(df1, df2, on=['ISO3', 'Year'], how='outer')
Out[62]: 
  ISO3  Year  Calories    GDP
0  AFG  1960      2300    NaN
1  AFG  1961      2323    NaN
2  USA  2005      2800    NaN
3  USA  2006      2828    NaN
4  AFG  1980       NaN   3600
5  AFG  1981       NaN   3636
6  USA  2049       NaN  10000
7  USA  2050       NaN  10100