Skip to content

Instantly share code, notes, and snippets.

@anna-geller
Created June 27, 2021 01:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anna-geller/71048179fbf0b16b335310e2a82118cb to your computer and use it in GitHub Desktop.
Save anna-geller/71048179fbf0b16b335310e2a82118cb to your computer and use it in GitHub Desktop.
import numpy as np
import pandas as pd
class TimeseriesGenerator:
def __init__(
self,
start_date: str,
end_date: str,
frequency: str = "H",
dt_column: str = "timestamp",
nr_column: str = "value",
min_value: int = 0,
max_value: int = 100,
) -> None:
self.start_date = start_date
self.end_date = end_date
self.frequency = frequency
self.dt_column = dt_column
self.nr_column = nr_column
self.min_value = min_value
self.max_value = max_value
def get_date_range(self) -> pd.date_range:
return pd.date_range(
start=self.start_date, end=self.end_date, freq=self.frequency
)
def get_timeseries(self) -> pd.DataFrame:
timestamp_date_range = self.get_date_range()
timeseries_df = pd.DataFrame(timestamp_date_range, columns=[self.dt_column])
timeseries_df[self.nr_column] = np.random.randint(
self.min_value, self.max_value, size=len(timestamp_date_range)
)
return timeseries_df
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment