有没有有效的方法来合并两个表?

时间:2019-12-04 03:28:15

标签: python database pandas dataframe

我有一个关于合并两个表的问题。假设我有一个表A,其中的数据包含以下参数:国家/地区,城市,邮政编码。另外,我有一个表B,该表具有唯一的国家/地区名称,并有一列指定其所在的洲(北美,亚洲,欧盟等)。

如何将两个表合并为一个表,以使它们具有列:“国家/地区”,“城市”,“邮政编码”和对应于表B大陆的列?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以使用pd.merge函数 示例:您具有带有“国家/地区”,“城市”和“邮政编码”列的“国家/地区” df,以及具有“国家/地区”和“大陆”列的“大陆” df。在公共栏“国家/地区”上使用pd.merge函数

country = pd.DataFrame([['country1','city1','zip1'],['country1','city1','zip2'],['country1','city2','zip3'],['country1','city2','zip4'],
                       ['country2','city3','zip5'],['country2','city3','zip6'],['country2','city4','zip7'],
                       ['country3','city5','zip8'],['country3','city6','zip9']],
                      columns=['country','city','zipcode'])
continent = pd.DataFrame([['country1','A'],['country2','B'],['country3','C'],['country4','D'],['country5','E']],
                      columns=['country','continent'])
country = country.merge(continent, on=['country'])
print(country)

输出:

    country   city zipcode continent
0  country1  city1    zip1         A
1  country1  city1    zip2         A
2  country1  city2    zip3         A
3  country1  city2    zip4         A
4  country2  city3    zip5         B
5  country2  city3    zip6         B
6  country2  city4    zip7         B
7  country3  city5    zip8         C
8  country3  city6    zip9         C