Pandas 如何合并数据帧并覆盖其中一个数据帧中匹配行对应的值?
我想在python中合并两个数据帧,如下所示 如果df1是: 和df2: 我希望结果是这样的: 本质上,我需要两个数据帧按照天数和顺序进行合并;天数具有相应的费率值,需要保持不变,除非例如,如果您查看第9天,它在dfs中,并且费率不同,则需要保留与df2的费率 我对python非常了解,但我不太了解pd.merge,因此如果有人能帮我,我将不胜感激Pandas 如何合并数据帧并覆盖其中一个数据帧中匹配行对应的值?,pandas,dataframe,merge,Pandas,Dataframe,Merge,我想在python中合并两个数据帧,如下所示 如果df1是: 和df2: 我希望结果是这样的: 本质上,我需要两个数据帧按照天数和顺序进行合并;天数具有相应的费率值,需要保持不变,除非例如,如果您查看第9天,它在dfs中,并且费率不同,则需要保留与df2的费率 我对python非常了解,但我不太了解pd.merge,因此如果有人能帮我,我将不胜感激 多谢各位 您首先要查找的是combine\u df2.set_index('day',inplace=True) df2=df2.combine_
多谢各位 您首先要查找的是
combine\u
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
使用,以及:
两个9天。
>> 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