2016-09-17 62 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') 
相關問題