сначала создайте данные:
import pandas as pd
import numpy as np
%matplotlib inline
data = pd.DataFrame({'time':np.arange(10)})
data['sin_of_the_times']= np.sin(data.time)
newdata = pd.DataFrame({'time': np.linspace(0,10,15)})
newdata['sin_of_the_times'] = np.NAN
data['interpolated']=False
newdata['interpolated']= True
ultimatedata = pd.concat([data, newdata])
ultimatedata.sort_values('time', inplace=True)
Что дает вам это:
time sin_of_the_times interpolated
0 0.000000 0.000000 False
0 0.000000 NaN True
1 0.714286 NaN True
1 1.000000 0.841471 False
2 1.428571 NaN True
2 2.000000 0.909297 False
...
Без создания новой функции есть ли метод интерполяции, уже существующий вПитон, который примет:
- первый NaN и скажет, что время = 0,0 равно 0% от времени = 0, а время = 1,0, следовательно, равно 0% пути между 0 и 0,8, поэтому будет0.0.
- 2-й NaN будет 7/10-й (ish) путь от 0 до 1, поэтому 7/10-й путь от 0 до 0,841471, так что это будет .5890297
- третий NaN4 / 10ths (ish) будет между 1 и 2, поэтому также 4 / 10ths между 0,841471 и 0,909297
Есть ли название для этого типа метода интерполяции?(в данном случае это upsample'ing) методы интерполяции, похоже, основаны только на одном столбце.