我有两个数据框DF1和DF2。DF1是主要的,DF2是增量的。来自DF2的数据应该插入或用于更新DF1数据。
假设DF1的格式如下:
ID编号 | 开始日期 | 数量 | 天数 ---|---|---|--- 1 | 2016-01-01 | 4650 | 22 2 | 2016-01-02 | 3130 | 45 1 | 2016-01-03 | 4456 | 22 2 | 2016-01-15 | 1234 | 45
DF2包含以下内容:
ID编号 | 开始日期 | 数量 | 天数 ---|---|---|--- 1 | 2016-01-01 | 8650 | 52 2 | 2016-01-02 | 7130 | 65 1 | 2016-01-06 | 3456 | 20 2 | 2016-01-20 | 2345 | 19 3 | 2016-02-02 | 1345 | 19
我需要将两个数据框组合在一起,这样如果DF2的“ID编号”和“开始日期”与DF1匹配,则应替换为DF1中的数据;如果不匹配,则应将其插入到DF1中。"id_no"不是唯一的。
期望结果:
假设DF1的格式如下:
ID编号 | 开始日期 | 数量 | 天数 ---|---|---|--- 1 | 2016-01-01 | 4650 | 22 2 | 2016-01-02 | 3130 | 45 1 | 2016-01-03 | 4456 | 22 2 | 2016-01-15 | 1234 | 45
DF2包含以下内容:
ID编号 | 开始日期 | 数量 | 天数 ---|---|---|--- 1 | 2016-01-01 | 8650 | 52 2 | 2016-01-02 | 7130 | 65 1 | 2016-01-06 | 3456 | 20 2 | 2016-01-20 | 2345 | 19 3 | 2016-02-02 | 1345 | 19
我需要将两个数据框组合在一起,这样如果DF2的“ID编号”和“开始日期”与DF1匹配,则应替换为DF1中的数据;如果不匹配,则应将其插入到DF1中。"id_no"不是唯一的。
期望结果:
编号 | 起始日期 | 金额 | 天数 |
---|---|---|---|
1 | 2016年01月01日 | 8650元 | 52天 |
2 | 2016年01月02日 | 7130元 | 65天 |
1 | 2016年01月03日 | 4456元 | 22天 |
2 | 2016年01月15日 | 1234元 | 45天 |
1 | 2016年01月06日 | 3456元 | 20天 |
2 | 2016年01月20日 | 2345元 | 19天 |
3 | 2016年02月02日 | 1345元 | 19天 |
select
中使用*
语法,coalesce
df2
和df1
来编程实现它。 - Psidom