我有两个数据帧,其中一个是时间戳,另一个也有时间戳,但有间隙.这两个数据帧在时间戳上有些重叠,有些则不重叠.MWe:
此代码创建第一个数据帧:
daterange = pd.date_range(start='1/1/2023 09:30:00', end='1/3/2023 09:35:00', freq = 'min')
daterange_keep = (pd.DatetimeIndex(pd.to_datetime(daterange))
.indexer_between_time('09:30', '09:35')
)
firstdf= pd.DataFrame(daterange[daterange_keep])
firstdf.columns = ['timestamp']
firstdf
这将创建以下数据帧,时间为1月1日至1月3日的9:30至9:33:
第二个数据帧如下所示:
seconddf = pd.DataFrame({'timestamp': ['2023-01-01 09:30:00', '2023-01-01 09:32:00', '2023-01-01 09:34:00', '2023-02-01 09:30:00'], 'value': [3,5,7,9]})
seconddf
我想合并两个帧,保留第一个帧中的所有时间戳,并为第二个帧中丢失的数据插入NaN,并删除第二个帧中不在第一个帧中的所有数据.所需输出为:
执行此操作的最佳方式是什么?(理想情况下,我还可以重命名‘Value’列,但我假设我可以独立于合并来执行此操作.)
显而易见的方式似乎是firstdf.merge(seconddf, how = 'inner')
,但这会产生一个错误,告诉我应该使用concat
,而我不知道concat
如何实现这种合并.