In [ ]:
sampled_variation = instanteanous_variation.set_index('time').incrementation.groupby(pd.TimeGrouper(freq='15Min')).sum() #every 15Mins
sampled_variation = pd.DataFrame(sampled_variation, columns=['incrementation']) #to dataframe
sampled_variation = sampled_variation.fillna(value=0) #transform NaN to 0
sampled_variation['date'] = sampled_variation.index.date #faster access to date in the following
#From incrementation to daily_variation
daily = []
for d in dates:
temp = sampled_variation.loc[(sampled_variation.date==d),['incrementation']].cumsum().values
daily = np.append(daily,temp)
sampled_variation['incrementation'] = pd.Series(daily, index=sampled_variation.index)
sampled_variation.columns = ['daily_variation','date']
#Removal of first and last day to have full periods of 24h (96 by day)
sampled_variation=sampled_variation.loc[(sampled_variation.date!=date_start)&(sampled_variation.date!=date_end),:]
In [ ]:
#Visualizion of sampled_variation to compare with instanteanous_variation
#Compute Boolean Vector to select among our data
boolean_selection = False
for d in week_to_visualize:
boolean_selection = boolean_selection | (sampled_variation.date==d)
plt.figure(figsize=(30,10))
sampled_variation.loc[(boolean_selection),'daily_variation'].plot(kind='line', fontsize=15)
plt.title('Sampled Daily Variation Every 15mins Over 1 Week', fontsize=20)
plt.ylabel('Sampled Daily Variation', fontsize=15)
plt.show()