**TL;DR:** Use our pre-built example dataset like this:

# Load pre-built time series example dataset df = pd.read_csv("https://techoverflow.net/datasets/timeseries-example.csv", parse_dates=["Timestamp"]) df.set_index("Timestamp", inplace=True)

### How to build your own time series example dataset

In our previous post Easily generate sine/cosine waveform data in Python using UliEngineering we showed how to generate sine and cosine waves using UliEngineering.

In this post, we show how to create a *pandas* `DataFrame`

containing sine and cosine data to be used as a sample time series dataset.

First, we generate the sine and cosine wave data:

import pandas as pd import numpy as np from UliEngineering.SignalProcessing.Simulation import sine_wave, cosine_wave # Configure the properties of the sine wave here frequency = 10.0 # 10 Hz sine / cosine wave samplerate = 10000 # 10 kHz nseconds = 1 # Generate 1 second of data sine = sine_wave(frequency=frequency, samplerate=samplerate, length=nseconds) cosine = cosine_wave(frequency=frequency, samplerate=samplerate, length=nseconds) nsamples = len(sine) # How many values we have in the data arrays

After that, we define the timestamp where the dataset starts:

start_timestamp = pd.Timestamp('now')

Now we can create a `list`

of `Timestamp`

objects representing the points in time where the signal has been sampled:

# Create timestamps by offsetting timedelta = pd.Timedelta(1/samplerate, 'seconds') timestamps = [start_timestamp + i * timedelta for i in range(nsamples)]

Now we’re reading to create the `DataFrame`

object:

df = pd.DataFrame(index=timestamps, data={ "Sine": sine, "Cosine": cosine }) df.index.name = 'Timestamp'

Now we can use `df.plot()`

to plot the dataset:

# Use nice plotting style from matplotlib import pyplot as plt plt.style.use("ggplot") # Plot dataset df.plot() # Make figure larger plt.gcf().set_size_inches(10, 5)

Additionally we can export the dataset as CSV using

df.to_csv("/ram/timeseries-example.csv")

This example file is also available online at https://techoverflow.net/datasets/timeseries-example.csv

### Full example:

#!/usr/bin/env python3 import pandas as pd import numpy as np from UliEngineering.SignalProcessing.Simulation import sine_wave, cosine_wave # Configure the properties of the sine wave here frequency = 10.0 # 10 Hz sine / cosine wave samplerate = 10000 # 10 kHz nseconds = 1 # Generate 1 second of data sine = sine_wave(frequency=frequency, samplerate=samplerate, length=nseconds) cosine = cosine_wave(frequency=frequency, samplerate=samplerate, length=nseconds) nsamples = len(sine) # How many values we have in the data arrays start_timestamp = pd.Timestamp('now') # Create timestamps by offsetting timedelta = pd.Timedelta(1/samplerate, 'seconds') timestamps = [start_timestamp + i * timedelta for i in range(nsamples)] df = pd.DataFrame(index=timestamps, data={ "Sine": sine, "Cosine": cosine }) df.index.name = 'Timestamp' df.to_csv("timeseries-example.csv")