根据特定列值集成2个数据帧

时间:2016-09-17 10:19:59

标签: python pandas dataframe

我不确定我的问题是否正确,但我会在此尝试清楚解释。

我有两个数据帧,df和df2。

df包含国家/地区名称及其短名称

 Country    |    Shortname
 England           ENG
 United States     USA
 China             CN
 Thailand          TH

df2由多个国家/地区名称组成,包括重复项:

Country
England
England
China
China
China
Thailand
England

我希望通过比较两个数据帧中的Country,将df in中的Shortname集成到df2中的新列Shortname中。 这是我想要的结果:

DF2

Country   |   Shortname
England         ENG
England         ENG
China           CN
China           CN
China           CN
Thailand        TH
England         ENG

非常感谢。

2 个答案:

答案 0 :(得分:1)

我在这种情况下使用map()方法:

In [49]: df
Out[49]:
         Country Shortname
0        England       ENG
1  United States       USA
2          China        CN
3       Thailand        TH

In [50]: df2
Out[50]:
    Country
0   England
1   England
2     China
3     China
4     China
5  Thailand
6   England

In [52]: df2['Shortname'] = df2.Country.map(df.set_index('Country').Shortname)

In [53]: df2
Out[53]:
    Country Shortname
0   England       ENG
1   England       ENG
2     China        CN
3     China        CN
4     China        CN
5  Thailand        TH
6   England       ENG

答案 1 :(得分:0)

或者,考虑merge

df2 = df2.join(df, on='Country')

或加入:

{{1}}