Skip to content

Timeseries Data Report

This section demonstrates how to use the Timeseries Data Profiling Report module in ydata-sdk. Generate the Profiling Report and the PDF report for Synthetic Data Quality.

Example Code

"""Example using YData's TimeSeriesSynthesizer and SyntheticDataProfile."""
import pandas as pd

from ydata.dataset import Dataset
from ydata.metadata.metadata import Metadata
from ydata.report import SyntheticDataProfile
from ydata.synthesizers.timeseries.model import TimeSeriesSynthesizer

import yfinance as yf


if __name__ == "__main__":

    ticker = 'AAPL'
    data = yf.download('AAPL', start='2025-01-01', end='2026-01-01')

    if isinstance(data.columns, pd.MultiIndex):
        data.columns = data.columns.droplevel(1)

    data['Ticker'] = ticker

    data = data.reset_index()

    data = Dataset(data)
    meta = Metadata(data, {"sortbykey": "Date", "entities": "Ticker"})

    # Fit the data with a Time Series Synthesizer
    ts_synth = TimeSeriesSynthesizer()
    ts_synth.fit(data, meta)
    synth_data = ts_synth.sample(n_entities=1)

    # Output the Profile
    report = SyntheticDataProfile(
        data,
        synth_data,
        metadata=meta,
        data_types=ts_synth.data_types,
        target="Volume",
        report_type="timeseries")

    report.generate_report(
        output_path="./timeseries_stock_report.pdf",
    )