CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-scores

Mathematical functions for verification, evaluation and optimization of forecasts, predictions or models

Overview
Eval results
Files

pandas-integration.mddocs/

Pandas Integration

Specialized functions for working with pandas Series and DataFrame objects, providing simplified APIs for basic continuous metrics without dimensional operations.

Capabilities

Pandas Continuous Scores

Simplified versions of continuous metrics optimized for pandas data structures. These functions provide basic error metrics without the dimensional reduction capabilities available in the full xarray-based API.

from scores.pandas.continuous import mse, rmse, mae
from scores.pandas.typing import PandasType

Mean Squared Error (MSE) for Pandas

Calculates MSE for pandas Series data with angular data support.

def mse(
    fcst: PandasType,
    obs: PandasType,
    *,
    is_angular: bool = False,
) -> PandasType:
    """
    Calculate Mean Squared Error for pandas data.

    Args:
        fcst: Forecast data in pandas Series
        obs: Observation data in pandas Series
        is_angular: Handle circular/angular data (e.g. wind direction)

    Returns:
        pandas.Series with single MSE value

    Notes:
        - Dimensional reduction not supported for pandas
        - Use xarray API (scores.continuous.mse) for advanced operations
        - Angular data should be in degrees, not radians
    """

Root Mean Squared Error (RMSE) for Pandas

Calculates RMSE for pandas Series data.

def rmse(
    fcst: PandasType,
    obs: PandasType,
    *,
    is_angular: bool = False,
) -> PandasType:
    """
    Calculate Root Mean Squared Error for pandas data.

    Args:
        fcst: Forecast data in pandas Series
        obs: Observation data in pandas Series
        is_angular: Handle circular/angular data

    Returns:
        pandas.Series with single RMSE value
    """

Mean Absolute Error (MAE) for Pandas

Calculates MAE for pandas Series data.

def mae(
    fcst: PandasType,
    obs: PandasType,
    *,
    is_angular: bool = False,
) -> PandasType:
    """
    Calculate Mean Absolute Error for pandas data.

    Args:
        fcst: Forecast data in pandas Series
        obs: Observation data in pandas Series
        is_angular: Handle circular/angular data

    Returns:
        pandas.Series with single MAE value
    """

Types

from typing import Type
import pandas as pd

PandasType = Type[pd.Series]

Usage Examples

import pandas as pd
from scores.pandas.continuous import mse, rmse, mae

# Create sample pandas data
forecast_series = pd.Series([1.0, 2.0, 3.0, 4.0, 5.0])
observed_series = pd.Series([1.1, 1.9, 3.1, 3.9, 5.1])

# Calculate basic metrics
mse_result = mse(forecast_series, observed_series)
rmse_result = rmse(forecast_series, observed_series)
mae_result = mae(forecast_series, observed_series)

print(f"MSE: {mse_result.values[0]}")
print(f"RMSE: {rmse_result.values[0]}")
print(f"MAE: {mae_result.values[0]}")

# For angular data (e.g. wind direction in degrees)
wind_forecast = pd.Series([10, 350, 5, 180])
wind_observed = pd.Series([15, 355, 0, 175])

angular_mse = mse(wind_forecast, wind_observed, is_angular=True)
print(f"Angular MSE: {angular_mse.values[0]}")

Limitations

The pandas API provides simplified functionality compared to the full xarray-based scores API:

  • No dimensional operations: No reduce_dims or preserve_dims parameters
  • No weighting: No weights parameter support
  • Limited metrics: Only basic continuous metrics (MSE, RMSE, MAE) available
  • Single output: All dimensions automatically reduced to single scalar value

For advanced functionality including dimensional operations, weighting, and the full range of metrics, convert pandas data to xarray and use the main scores API:

import xarray as xr
import pandas as pd
from scores.continuous import mse as xarray_mse

# Convert pandas to xarray for advanced operations
forecast_da = xr.DataArray(forecast_series)
observed_da = xr.DataArray(observed_series)

# Now can use full xarray functionality
advanced_mse = xarray_mse(forecast_da, observed_da, weights=weights)

Install with Tessl CLI

npx tessl i tessl/pypi-scores

docs

categorical-scores.md

continuous-scores.md

emerging-scores.md

index.md

pandas-integration.md

plot-data.md

probability-scores.md

processing-tools.md

sample-data.md

spatial-scores.md

statistical-tests.md

tile.json