gluonts.dataset.pandas module#

class gluonts.dataset.pandas.PandasDataset(dataframes: InitVar[Union[pd.DataFrame, pd.Series, Iterable[pd.DataFrame], Iterable[pd.Series], Iterable[tuple[Any, pd.DataFrame]], Iterable[tuple[Any, pd.Series]], dict[str, pd.DataFrame], dict[str, pd.Series]]], target: Union[str, list[str]] = 'target', feat_dynamic_real: Optional[list[str]] = None, past_feat_dynamic_real: Optional[list[str]] = None, timestamp: Optional[str] = None, freq: Optional[str] = None, static_features: InitVar[Optional[pd.DataFrame]] = None, future_length: int = 0, unchecked: bool = False, assume_sorted: bool = False, dtype: Type = <class 'numpy.float32'>)[source]#

基于 pandas.DataFrame 的数据集类型。

该类由一系列 pandas.DataFrame 对象构建而成,每个 DataFrame 代表一个时间序列。targettimestamp 列是必不可少的。时间序列的动态特征可以与其 DataFrame 一起指定,而静态特征可以通过 static_features 参数在单独的 DataFrame 对象中指定。

参数

dataframes (InitVar[Union[pd.DataFrame, pd.Series, Iterable[pd.DataFrame], Iterable[pd.Series], Iterable[tuple[Any, pd.DataFrame]], Iterable[tuple[Any, pd.Series]], dict[str, pd.DataFrame], dict[str, pd.Series]]]) – 单个 pd.DataFrame/pd.Series 或以列表或字典形式包含至少 timestamptarget 值的集合。如果提供了字典,则键将作为关联的 item_id
  • target (Union[str, list[str]]) – 包含 target 时间序列的列名。对于多元目标,应提供列名列表。

  • timestamp (Optional[str]) – 包含时间戳信息的列名。

  • freq (Optional[str]) – 时间序列中观测值的频率。必须是有效的 pandas 频率。

  • feat_dynamic_real (Optional[list[str]]) – 包含动态实值特征的列名列表。

  • past_feat_dynamic_real (Optional[list[str]]) – 包含仅在过去可用的动态实值特征的列名列表。

  • static_features (InitVar[Optional[pd.DataFrame]]) – 包含时间序列静态特征的 pd.DataFrame。索引应包含 dataframes 参数中时间序列的键。

  • future_length (int) – 对于目标和过去的动态特征,迭代数据集时会移除最后 future_length 个元素。

  • unchecked (bool) – 是否跳过索引一致性检查。(默认值:False

  • assume_sorted (bool) – 是否假定索引按时间排序,并跳过排序。(默认值:False

  • assume_sorted: bool = False#

dataframes: InitVar[Union[pd.DataFrame, pd.Series, Iterable[pd.DataFrame], Iterable[pd.Series], Iterable[tuple[Any, pd.DataFrame]], Iterable[tuple[Any, pd.Series]], dict[str, pd.DataFrame], dict[str, pd.Series]]]#
dtype#
alias of numpy.float32

feat_dynamic_real: Optional[list[str]] = None#

freq: Optional[str] = None#
classmethod from_long_dataframe(dataframe: pd.DataFrame, item_id: str, timestamp: Optional[str] = None, static_feature_columns: Optional[list[str]] = None, static_features: pd.DataFrame = Empty DataFrame Columns: [] Index: [], **kwargs) PandasDataset[source]#
从长格式数据帧构建 PandasDataset

长格式数据帧一次包含多个项目的时序数据(目标序列和协变量)。item_id 列用于区分项目并相应地进行 group_by 操作。

静态特征也可以包含在长格式数据帧中(具有常量值),或作为单独的数据帧提供,通过 item_id 值进行索引。

注意:在大型数据集上,此构造函数可能需要一些时间才能完成,因为它会对数据执行一些索引和分组操作,并缓存结果。

dataframe – pandas.DataFrame,至少包含 timestamptargetitem_id 列。

dataframes (InitVar[Union[pd.DataFrame, pd.Series, Iterable[pd.DataFrame], Iterable[pd.Series], Iterable[tuple[Any, pd.DataFrame]], Iterable[tuple[Any, pd.Series]], dict[str, pd.DataFrame], dict[str, pd.Series]]]) – 单个 pd.DataFrame/pd.Series 或以列表或字典形式包含至少 timestamptarget 值的集合。如果提供了字典,则键将作为关联的 item_id
  • item_id – 通过此列进行分组可以得到不同的时间序列,此列的列名。

  • static_feature_columnsdataframe 中包含静态特征的列。

  • static_features – 用于静态特征的专用 DataFrame。如果同时指定了 static_featuresstatic_feature_columns,则将两组特征附加在一起。

  • **kwargs – 附加参数。与 PandasDataset 类参数相同。

  • 返回

包含给定长格式数据帧中的序列数据的 数据集。

返回类型

PandasDataset

future_length: int = 0#

property num_feat_dynamic_real: int#
property num_feat_static_cat: int#
property num_feat_static_real: int#
property num_past_feat_dynamic_real: int#
past_feat_dynamic_real: Optional[list[str]] = None#
property static_cardinalities#
static_features: InitVar[Optional[pd.DataFrame]] = None#
target: Union[str, list[str]] = 'target'#
timestamp: Optional[str] = None#
unchecked: bool = False#
gluonts.dataset.pandas.infer_freq(index: pandas.core.indexes.base.Index) str[source]#
gluonts.dataset.pandas.is_uniform(index: pandas.core.indexes.period.PeriodIndex) bool[source]#
检查 index 是否包含单调递增的周期,且周期之间的间隔与 index.freq 指定的频率一致。

gluonts.dataset.pandas.pair_with_item_id(obj: Union[tuple, pandas.core.frame.DataFrame, pandas.core.series.Series])[source]#

>>> ts = ["2021-01-01 00:00", "2021-01-01 02:00", "2021-01-01 04:00"]
>>> is_uniform(pd.DatetimeIndex(ts).to_period("2H"))
True
>>> ts = ["2021-01-01 00:00", "2021-01-01 04:00"]
>>> is_uniform(pd.DatetimeIndex(ts).to_period("2H"))
False
Next
gluonts.dataset.split module
Previous
gluonts.dataset.multivariate_grouper module