= pd.read_csv(
data /'hydro_example.csv',
DATA_PATH=['time', OBS_COL],
usecols='time',
index_col={"time": pd.to_datetime}
converters
)= data['2012-01-01':] data
Seasonal Handling for Hydrological Flow Prediction
Data loading
Seassonal model
We create a class that is able to: - Compute seasonal patterns based on week of year - Remove seasonality from data - Add seasonality back to data
SeasonalityHandler
SeasonalityHandler ()
*Class to handle seasonality operations in time series data.
This class provides methods to: - Compute seasonal patterns based on week of year - Remove seasonality from data - Add seasonality back to data
Attributes: seasonal_pattern: pd.DataFrame The computed seasonal pattern, indexed by week of year*
First we create an instance:
= SeasonalityHandler() seasonality_handler
SeasonalityHandler.compute_seasonal_pattern
SeasonalityHandler.compute_seasonal_pattern (data:pandas.core.frame.Data Frame)
Compute mean values for each week of the year to capture seasonal patterns.
Now we compute the seasonality of the data as follows:
= seasonality_handler.compute_seasonal_pattern(data) season
SeasonalityHandler.remove_seasonality
SeasonalityHandler.remove_seasonality (data:pandas.core.frame.DataFrame)
Remove seasonality from the data.
Its also possible to remove the seasonality to our data as follows
= seasonality_handler.remove_seasonality(data)
deseasonalized_data deseasonalized_data.plot()
SeasonalityHandler.add_seasonality
SeasonalityHandler.add_seasonality (data:pandas.core.frame.DataFrame)
Add seasonality back to the data.
We can also add the seasonality back
3) seasonality_handler.add_seasonality(deseasonalized_data).head(
Q_obs | |
---|---|
time | |
2012-01-01 | 68.839996 |
2012-01-02 | 67.500000 |
2012-01-03 | 67.349998 |
SeasonalityHandler.append_season
SeasonalityHandler.append_season (data:pandas.core.frame.DataFrame)
Append the seasonality to the data.
Or we can append the seasonal data as a new column as follows
3) seasonality_handler.append_season(data).head(
Q_obs | season | |
---|---|---|
time | ||
2012-01-01 | 68.839996 | 90.025156 |
2012-01-02 | 67.500000 | 79.543198 |
2012-01-03 | 67.349998 | 79.543198 |