2016-12-18 96 views
2

我想分析一些与使用熊猫的航线有关的数据。所以,我有两个dataframes:如何根据其他数据框中的列将值分配给pandas数据框中的列?

print(airports.head()) 

      IATA/FAA   Country 
Airport ID       
1    GKA Papua New Guinea 
2    MAG Papua New Guinea 
3    HGU Papua New Guinea 
4    LAE Papua New Guinea 
5    POM Papua New Guinea 

print(routes.head()) 

     Source airport Destination airport 
Airline         
2B     AER     KZN 
2B     ASF     KZN 
2B     ASF     MRV 
2B     CEK     KZN 
2B     CEK     OVB 

现在我想两列添加到数据帧routes:“SA国家”,它代表了源机场和“DA国”的代表目的地国的国家飞机场。对于给定的IATA/FAA,该国可以以某种方式从数据框airports中提取。但是,我无法理解,“不知何故”。有任何想法吗?

回答

2

使用map通过字典从airports通过set_indexto_dict造成的,如果某些值不匹配得到NaN

d = airports.set_index('IATA/FAA')['Country'].to_dict() 
#works by map by Series but a bit slowier 
#d = airports.set_index('IATA/FAA')['Country'] 
routes['SA country'] = routes['Source airport'].map(d) 
routes['DA country'] = routes['Destination airport'].map(d) 
相关问题