Простое слияние в столбце date
должно быть тем, что вы ищете.Выполните левое слияние с более длинным (возможно, nan
-значным) временным рядом с левой стороны:
import pandas as pd
import numpy as np
from datetime import datetime
ts1 = pd.DataFrame({'date': pd.date_range(start=datetime.now().date(), periods=100),
'var1': np.repeat(np.nan, 50).tolist() + np.linspace(0, 100, 50).tolist()})
ts2 = pd.DataFrame({'date':pd.date_range(start=datetime.now().date(), periods=50),
'var2': np.linspace(0, 100, 50).tolist()})
merged = ts1.merge(ts2, on='date', how='left')
Выход
date var1 var2
0 2018-06-09 NaN 0.000000
1 2018-06-10 NaN 2.040816
2 2018-06-11 NaN 4.081633
3 2018-06-12 NaN 6.122449
4 2018-06-13 NaN 8.163265
5 2018-06-14 NaN 10.204082
...
96 2018-09-13 93.877551 NaN
97 2018-09-14 95.918367 NaN
98 2018-09-15 97.959184 NaN
99 2018-09-16 100.000000 NaN