Source code for pyprocessta.preprocess.resample

# -*- coding: utf-8 -*-
"""Often, data is not sampled on a regular grid.
This module provides to regularize such data"""
from typing import Union

import pandas as pd

__all__ = ["resample_regular"]


def _interpolate(resampled, interpolation):

    if isinstance(interpolation, int):
        result = resampled.interpolate(method="spline", order=interpolation)
    else:
        result = resampled.interpolate(method="linear")
    return result


[docs]def resample_regular( df: pd.DataFrame, interval: str = "10min", interpolation: Union[str, int] = "linear", start_time=None, ) -> pd.DataFrame: """Resamples the dataframe at a desired interval. Args: df (pd.DataFrame): input dataframne interval (str, optional): Resampling intervall. Defaults to "10min". interpolation (Union[str, int], optional): Interpolation method. If you provide an integer, spline interpolation of that order will be used. Defaults to "linear". Returns: pd.DataFrame: Output data. """ oidx = df.index start = oidx.min() if start_time is None else start_time nidx = pd.date_range(start, oidx.max(), freq=interval) res = df.reindex(oidx.union(nidx)) result = _interpolate(res, interpolation).reindex(nidx) return result