我想在python中合并两个数据框,如下所示。
从本质上讲,我需要将两个数据帧按照天和有序的天合并;这些天具有相应的费率值,需要保持相同,除非,例如,如果您查看第9天,这两个dfs中的费率都与df2的费率不同,则需要保留该费率。
我对python真的很了解,而且我对pd.merge也不太了解,因此,如果有人可以帮助我,我将非常感激。
非常感谢!
答案 0 :(得分:1)
您正在寻找combine_first
df2.set_index('day',inplace=True)
df2=df2.combine_first(df1.set_index('day')).reset_index()
df2
Out[552]:
day val
0 2 1.0
1 3 1.0
2 4 2.0
3 5 2.0
4 6 2.0
5 7 2.0
6 8 2.0
7 9 3.0
8 12 3.0
答案 1 :(得分:0)
使用concat(),sort_values()和drop_duplicates():
>> outcome = pd.concat([df1, df2]).sort_values('days').drop_duplicates(subset=['days'],keep='last').reset_index(drop=True)
>> outcome
days interest rate
0 2 0.02560
1 3 0.01230
2 4 0.01470
3 5 0.25600
4 6 0.78560
5 7 0.09850
6 8 0.05890
7 9 0.02268
8 12 0.01235