我有两个数据框,如下所示。
df1:
区号金额
1非
2非
3非
4非
5非
6非
7非
8非
df2:
区号金额
3 8
4 11
5 17
我想得到如下数据框的答案。
df2:
区号金额
1非
2非
3 8
4 11
5 17
6非
7非
8非
我如何实现我的目标?
最佳答案
这样的事情?
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