Обратите внимание, что интерполяция составляет между известными точками.
Таким образом, для интерполяции в течение всего года недостаточно иметь только значения 12 (для каждого месяц). У вас должно быть 13 значений (например, для начала каждого месяца и начала следующего года).
Таким образом, я создал источник df как:
date = pd.date_range(start='01/01/1991', periods=13, freq='MS')
df = pd.DataFrame({'date': date, 'amount': np.random.randint(100, 200, date.size)})
получая, например:
date amount
0 1991-01-01 113
1 1991-02-01 164
2 1991-03-01 181
3 1991-04-01 164
4 1991-05-01 155
5 1991-06-01 157
6 1991-07-01 118
7 1991-08-01 133
8 1991-09-01 184
9 1991-10-01 183
10 1991-11-01 159
11 1991-12-01 193
12 1992-01-01 163
Затем, чтобы повысить частоту до дневной частоты и выполнить интерполяцию, я запустил:
df.set_index('date').resample('D').interpolate()
Если вы не хотите, чтобы результат содержал последнюю строку (для 1992-01-01 ), возьмите только фрагмент вышеупомянутого результата, отбросив последнюю строку:
df.set_index('date').resample('D').interpolate()[:-1]