Skip to main content
 首页 » 编程设计

python之如何根据行从一个数据框中获取值

2025年05月04日22itcoder

我有两个数据框,如下所示。

df1: 
AreaCode     Amount 
1            non 
2            non             
3            non             
4            non             
5            non             
6            non             
7            non             
8            non             
 
 
df2: 
AreaCode     Amount 
3            8 
4            11 
5            17 

我想得到如下数据框的答案。

df2: 
AreaCode     Amount 
1            non 
2            non             
3            8             
4            11             
5            17             
6            non             
7            non             
8            non    

我怎样才能实现我的目标?

请您参考如下方法:

像这样的?

df1.set_index('AreaCode').replace({'non':np.nan}).combine_first(df2.set_index('AreaCode')).reset_index() 
Out[58]:  
   AreaCode  Amount 
0         1     NaN 
1         2     NaN 
2         3     8.0 
3         4    11.0 
4         5    17.0 
5         6     NaN 
6         7     NaN 
7         8     NaN 

或者我们使用merge

df1.merge(df2,on='AreaCode',how='left').ffill(1).drop('Amount_x',1).rename(columns={'Amount_y':'Amount'}) 
Out[69]:  
  AreaCode Amount 
0        1    non 
1        2    non 
2        3      8 
3        4     11 
4        5     17 
5        6    non 
6        7    non 
7        8    non