我正在尝试合并两只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)
和其他许多人,但由于某种原因,它不起作用,有什么帮助吗?
答案 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