Мне нужно заменить значения в одном фрейме данных на индекс взаимной даты другого фрейма.Здесь есть конкретные даты (с 5-го по 10-е), где значения столбца B должны быть заменены значениями в dataframe2.Я посмотрел на слияния / соединения / замены / и т.д., но не могу узнать, как это сделать.
import pandas as pd
import numpy as np
list1 = [10,80,6,38,41,54,12,280,46,21,46,22]
list2 = [4,3,22,6,'NA','NA','NA','NA','NA','NA',452,13]
list3 = ['2016-01-01', '2016-01-02','2016-01-03','2016-01-04','2016-01-05','2016-01-06',
'2016-01-07','2016-01-08','2016-01-09','2016-01-10','2016-01-11','2016-01-12',]
dat = pd.DataFrame({'A' : list1, 'B' : list2, 'Date' : list3}, columns = ['A', 'B', 'Date'])
dat['Date'] = pd.to_datetime(dat['Date'], format = '%Y-%m-%d')
dat = dat.set_index('Date')
print(dat)
Значения 2016-01-05 to 2016-01-10
необходимо заменить значениями во втором кадре данных:
A B
Date
2016-01-01 10 4
2016-01-02 80 3
2016-01-03 6 22
2016-01-04 38 6
2016-01-05 41 NA
2016-01-06 54 NA
2016-01-07 12 NA
2016-01-08 280 NA
2016-01-09 46 NA
2016-01-10 21 NA
2016-01-11 46 452
2016-01-12 22 13
Вот второй кадр данных, где этизначения должны быть "сопоставлены" в первом кадре данных:
list4 = [78,15,16,79,71,90]
list5 = ['2016-01-05','2016-01-06','2016-01-07','2016-01-08','2016-01-09','2016-01-10']
dat2 = pd.DataFrame({'B' : list4, 'Date' : list5}, columns = ['B', 'Date'])
dat2['Date'] = pd.to_datetime(dat2['Date'], format = '%Y-%m-%d')
dat2 = dat2.set_index('Date')
print(dat2)
B
Date
2016-01-05 78
2016-01-06 15
2016-01-07 16
2016-01-08 79
2016-01-09 71
2016-01-10 90
Окончательный результат должен выглядеть следующим образом:
A B
Date
2016-01-01 10 4
2016-01-02 80 3
2016-01-03 6 22
2016-01-04 38 6
2016-01-05 41 78
2016-01-06 54 15
2016-01-07 12 16
2016-01-08 280 79
2016-01-09 46 71
2016-01-10 21 90
2016-01-11 46 452
2016-01-12 22 13
Любая помощь будетвысоко ценится!Спасибо.