所以,我有两个我创建的pandas数据帧并从在线数据中清除,我试图根据它们的日期合并它们,这些都是按月计算的。但是,第一个数据集的月份是在该月的最后一天,第二个数据集是否基于该月的第一天。
# data1
0 1987-01-01 63.752
1 1987-02-01 64.152
2 1987-03-01 64.488
3 1987-04-01 64.995
# data2
0 1987-01-31 1115.10
1 1987-02-30 1095.63
2 1987-03-30 1036.19
3 1987-04-30 1057.08
如果我每天都有一些缺失的数据
,我通常会通过这样的方式合并它们data3 = pd.merge(left=data1, left_on='Date', right=data2, right_on='Date')
但在这种情况下,它们永远不会匹配,即使它们都是相似的日期。
我怎么去"告诉" Pandas根据相隔几天的日期组合数据集,并将每个数据命名为" month - year"?我不知道从哪里开始,并希望得到任何意见。
答案 0 :(得分:2)
IIUC,您想在最近的日期合并吗?这是merge_asof
的用途
如果日期尚未转换为日期时间,请将其转换为
data1.date = pd.to_datetime(data1.date)
data2.date = pd.to_datetime(data2.date)
现在完成合并
pd.merge_asof(data1,data2,on='date',direction='nearest')
date value_x value_y
0 1987-01-01 63.752 1115.10
1 1987-02-01 64.152 1036.19
2 1987-03-01 64.488 1057.08
3 1987-04-01 64.995 1057.08