输入
df1
id date v1
a 2020-1-1 1
a 2020-1-2 2
b 2020-1-4 10
b 2020-1-22 30
c 2020-2-4 10
c 2020-2-22 30
df2
id date v1
a 2020-1-3 1
b 2020-1-7 12
b 2020-1-22 13
c 2020-2-10 15
c 2020-2-22 60
目标
id date v1 v2
a 2020-1-1 1 0
a 2020-1-2 2 0
a 2020-1-3 0 1
b 2020-1-4 10 0
b 2020-1-7 0 12
b 2020-1-22 30 13
c 2020-2-4 10 0
c 2020-2-10 0 15
c 2020-2-22 30 60
详细信息:
id
,只有两个数据框,日期是唯一的。df
将两个数据帧合并为id
,每个id
包含来自两个数据帧的所有日期值df1
和df2
中的日期返回原始值,而日期仅包含df1
和{{1}中的一个},它将返回原始值,如果日期没有值,则返回0。 尝试
我已经搜索了合并的concat文档,但是找不到答案。
答案 0 :(得分:1)
首先将列转换为日期时间以按to_datetime
正确排序,然后将DataFrame.merge
进行外部联接,并为v1
重命名列df2
以避免v1_x
和{输出中的{1}}列,用DataFrame.fillna
替换缺少的值,按DataFrame.sort_values
排序输出:
v1_y