Source code for tseda.series_stats.summary_statistics

"""Descriptive statistics computation for time-series signals."""

import pandas as pd

[docs] class SummaryStatistics: """Compute a standard set of descriptive statistics for a numeric series."""
[docs] def __init__(self, series: pd.Series) -> None: """Store the series for later statistical computation. Args: series: Numeric pandas Series to summarize. """ self.series = series
[docs] def compute_statistics(self) -> pd.DataFrame: """Compute descriptive statistics and return them as a tidy two-column DataFrame. Returns: DataFrame with columns ``statistic`` and ``value`` containing mean, median, std_dev, variance, min, max, percentiles, skewness, and kurtosis. """ stats = { "mean": self.series.mean(), "median": self.series.median(), "std_dev": self.series.std(), "variance": self.series.var(), "min": self.series.min(), "max": self.series.max(), "25th_percentile": self.series.quantile(0.25), "50th_percentile": self.series.quantile(0.50), "75th_percentile": self.series.quantile(0.75), "skewness": self.series.skew(), "kurtosis": self.series.kurtosis(), } stats_df = pd.DataFrame.from_dict(stats, orient='index', columns=['value']).reset_index() stats_df.columns = ['statistic', 'value'] return stats_df