Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 如何合并数据帧并覆盖其中一个数据帧中匹配行对应的值?_Pandas_Dataframe_Merge - Fatal编程技术网

Pandas 如何合并数据帧并覆盖其中一个数据帧中匹配行对应的值?

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_

我想在python中合并两个数据帧,如下所示

如果df1是:

和df2:

我希望结果是这样的:

本质上,我需要两个数据帧按照天数和顺序进行合并;天数具有相应的费率值,需要保持不变,除非例如,如果您查看第9天,它在dfs中,并且费率不同,则需要保留与df2的费率

我对python非常了解,但我不太了解pd.merge,因此如果有人能帮我,我将不胜感激


多谢各位

您首先要查找的是
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