Feb-05-2020, 10:56 AM
Hey!
sorry but the title is not clear enough because I didn't know how to describe it with few words.
As you can see in the image I have used interp1d to graphically "predict" the value of y when x=7.
What I'm trying to do is to predict another value of y when x+1 (8) and so on any time the size of X grows up till the last value of the dataset is reached(let's say 100) using a for loop?. like
sorry but the title is not clear enough because I didn't know how to describe it with few words.
As you can see in the image I have used interp1d to graphically "predict" the value of y when x=7.
What I'm trying to do is to predict another value of y when x+1 (8) and so on any time the size of X grows up till the last value of the dataset is reached(let's say 100) using a for loop?. like
[1 2 3 4 5 6] [ 4470.76 25465.72 25465.72 25465.72 21480.59 20024.53] [1 2 3 4 5 6 7] [ 4470.76 25465.72 25465.72 25465.72 21480.59 20024.53 15487.45] [1 2 3 4 5 6 7 8] [ 4470.76 25465.72 25465.72 25465.72 21480.59 20024.53 15487.45 25654.14] [1 2 3 4 5 6 7 8 9] [ 4470.76 25465.72 25465.72 25465.72 21480.59 20024.53 15487.45 25654.14 54874.22] ...Any ideas, please?
import pandas as pd import numpy as np import os import scipy.stats as sp import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns sns.set(rc={'figure.figsize': (18, 5)}) from scipy.interpolate import interp1d import matplotlib.pyplot as plt # Load dataset df = pd.read_csv('data.csv', sep=";", index_col = 'date') df = df[['pow']] # Reset index df = df.reset_index() df = df[['date', 'pow(+)']] df.head(10) X = np.array(pd.to_datetime(df['date'].index.values+1, format='%Y-%m-%d'), dtype=int)#.reshape((-1, 1)) X = X[:6] y = np.array(df['pow(+)'], dtype=float)#.reshape(-1, 1) y = y[:6] print (X) print (y) f = interp1d(X, y, fill_value = "extrapolate") #start, stop , nber of samples to generate, If True, stop is the last sample X_new = np.linspace(0, 7, num=8, endpoint=True) plt.plot(X, y, 'o', X_new, f(X_new), '-') plt.legend(['data', 'linear'], loc='best') plt.show() #print('\n') #print("X shape:", X.shape) #print("y shape:", y.shape)graphic