У меня есть два кадра данных, которые находятся в одном и том же периоде времени, но с очень разными частотами дискретизации. Я хотел бы еще объединить эти два с двумя простыми правилами.
Выберите значение, которое ближе к меткам времени, а затем все, что пропущено, заполните его. Даты не важны только для меток времени.
Я привожу пример того, как выглядят два кадра данных
[140]:
data.index
[140]:
DatetimeIndex(['2019-02-08 07:53:26.380000', '2019-02-08 07:53:27.334000',
'2019-02-08 07:53:27.653000', '2019-02-08 07:53:27.654000',
'2019-02-08 07:53:27.655000', '2019-02-08 07:53:27.973000',
'2019-02-08 07:53:27.974000', '2019-02-08 07:53:28.293000',
'2019-02-08 07:53:28.304000', '2019-02-08 07:53:28.611000',
...
'2019-02-08 14:41:03.128000', '2019-02-08 14:41:03.201000',
'2019-02-08 14:41:03.260000', '2019-02-08 14:41:03.314000',
'2019-02-08 14:41:03.429000', '2019-02-08 14:41:03.430000',
'2019-02-08 14:41:03.748000', '2019-02-08 14:41:03.749000',
'2019-02-08 14:41:03.752000', '2019-02-08 14:41:03.758000'],
dtype='datetime64[ns]', name='Time', length=457631, freq=None)
[141]:
df.index
[141]:
Index(['07:53:26.380', '07:53:31.319', '07:53:31.825', '07:53:31.888',
'07:53:31.889', '07:53:31.889', '07:53:31.988', '07:53:32.166',
'07:53:32.287', '07:53:32.389',
...
'14:40:43.759', '14:40:44.260', '14:40:44.761', '14:40:45.162',
'14:40:45.662', '14:40:46.163', '14:40:46.664', '14:40:47.064',
'14:40:47.064', '14:41:03.752'],
dtype='object', name='Time', length=14641)
данные - это самый большой массив данных, и я хотел бы включить кадр данных df , как я описал: на основе метки времени ближайшего совпадения, а затем распространяться до следующего.
Пока я много искал в Интернете и нашел код, который объединяет.
Например:
merge=pd.merge(data,df, how='inner', left_index=True, right_index=True)
pd.concat([data,df], join='inner', axis=1)
Ни одна из этих работ (они не возвращают пустой фрейм данных), поскольку совпадения времени не совпадают полностью.
Ваша помощь и совет более чем оценены.
С уважением
Alex