2016-09-17 64 views
0

我不确定我的问题是否正确,但我会尽力在此清楚解释。根据特定列值集成2个数据帧

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

DF由国家名字和他们的短名的

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

DF2由多个国名包括重复的:

Country 
England 
England 
China 
China 
China 
Thailand 
England 

我想SHORTNAME从DF中集成新的一列短名称中df2通过在两个数据框中比较国家。 这是我想要的结果:

DF2

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

非常感谢你。

回答

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 
+0

谢谢你的快速回复。有用。 –

0

另外,考虑merge

df2 = pd.merge(df2, df, on='Country') 

或者加入:

df2 = df2.join(df, on='Country') 
相关问题