【发布时间】:2018-02-05 22:37:45
【问题描述】:
我在 Python 中有两个表(作为 DataFrames)。一种如下:
Country Year totmigrants
Afghanistan 2000
Afghanistan 2001
Afghanistan 2002
Afghanistan 2003
Afghanistan 2004
Afghanistan 2005
Afghanistan 2006
Afghanistan 2007
Afghanistan 2008
Algeria 2000
Algeria 2001
Algeria 2002
...
Zimbabwe 2008
另一个是针对每一年(2000-2008 年共有 9 个单独的 DataFrame):
Year=2000
---------------------------------------
Country totmigrants Gender Total
Afghanistan 73 M 70
Afghanistan F 3
Albania 11 M 5
Albania F 6
Algeria 52 M 44
...
Zimbabwe F 1
我想将它们连接在一起,第一个表是外部连接。 我有这个想法,但这仅适用于按列合并:
new=pd.merge(table1,table2,how='left',on=['Country', 'Year'])
我想看到的是,从每个数据框中每年的移民总数中,F 和 M 出现在第一个表的新列中:
Country Year totmigrants F M
Afghanistan 2000 73 3 70
Afghanistan 2001 table3
Afghanistan 2002 table4
Afghanistan 2003 ...
Afghanistan 2004
Afghanistan 2005
Afghanistan 2006
Afghanistan 2007
Afghanistan 2008
Algeria 2000 52 8 44
Algeria 2001 table3 ...
Algeria 2002 table4 ...
...
Zimbabwe 2008 ... ...
这个合并有没有具体的方法,或者需要用到什么函数?
【问题讨论】:
-
在合并之前,尝试 groupby country 和 sum totalmigrants,或者只选择具有 totalmigrant 整数值的行。
-
第一个表没有任何有用的数据(除非您没有向我们显示所有列)。为什么你需要它?
-
@DYZ 该表中还有 10 个变量。我不能全部复制粘贴。其他变量已准备就绪,但仅缺少
totmigrants, F and M。我需要它来运行回归。
标签: python pandas dataframe join merge