autogluon.timeseries.TimeSeriesDataFrame

class autogluon.timeseries.TimeSeriesDataFrame(data: DataFrame | str | Path | Iterable, static_features: DataFrame | str | Path | None = None, id_column: str | None = None, timestamp_column: str | None = None, num_cpus: int = -1, *args, **kwargs)[source]

一组单变量时间序列,其中每一行由一个(item_id, timestamp)对标识。

例如,一个时间序列数据框可以表示一组产品的每日销售情况,其中每个item_id对应一个产品,timestamp对应记录的日期。

Parameters:
  • data (pd.DataFrame, str, pathlib.PathIterable) –

    用于构建 TimeSeriesDataFrame 的时间序列数据。该类目前支持四种输入格式。

    1. 时间序列数据以 pandas DataFrame 格式存储,且没有多级索引。例如:

         item_id  timestamp  target
      0        0 2019-01-01       0
      1        0 2019-01-02       1
      2        0 2019-01-03       2
      3        1 2019-01-01       3
      4        1 2019-01-02       4
      5        1 2019-01-03       5
      6        2 2019-01-01       6
      7        2 2019-01-02       7
      8        2 2019-01-03       8
      

    你也可以使用 from_data_frame() 来加载这种格式的数据。

    1. CSV 或 Parquet 格式的数据文件路径。文件必须包含 item_idtimestamp 列,以及时间序列值的列。这与上面的选项 1(没有多级索引的 pandas DataFrame 格式)类似。支持远程(例如 S3)和本地路径。你也可以使用 from_path() 来加载这种格式的数据。

    2. 时间序列数据以 pandas DataFrame 格式存储,且在 item_idtimestamp 上有多级索引。例如:

                          target
      item_id timestamp
      0       2019-01-01       0
              2019-01-02       1
              2019-01-03       2
      1       2019-01-01       3
              2019-01-02       4
              2019-01-03       5
      2       2019-01-01       6
              2019-01-02       7
              2019-01-03       8
      
    3. 时间序列数据以 Iterable 格式存储。例如:

      iterable_dataset = [
          {"target": [0, 1, 2], "start": pd.Period("01-01-2019", freq='D')},
          {"target": [3, 4, 5], "start": pd.Period("01-01-2019", freq='D')},
          {"target": [6, 7, 8], "start": pd.Period("01-01-2019", freq='D')}
      ]
      

    你也可以使用 from_iterable_dataset() 来加载这种格式的数据。

  • static_features (pd.DataFrame, str or pathlib.Path, optional) –

    一个可选的数据框,描述每个时间序列的元数据,这些元数据不随时间变化。 可以包含实数值或分类值。例如,如果TimeSeriesDataFrame包含各种产品的销售数据,静态特征可能指的是与时间无关的特征,如颜色或品牌。

    static_features的索引必须为相应的TimeSeriesDataFrame中的每个项目包含一个条目。例如,以下TimeSeriesDataFrame

                        target
    item_id timestamp
    A       2019-01-01       0
            2019-01-02       1
            2019-01-03       2
    B       2019-01-01       3
            2019-01-02       4
            2019-01-03       5
    

    与以下static_features兼容:

             feat_1 feat_2
    item_id
    A           2.0    bar
    B           5.0    foo
    

    TimeSeriesDataFrame将在序列化/反序列化、复制和切片操作期间确保静态特征的一致性。

    如果在fit期间提供了static_featuresTimeSeriesPredictor期望在预测期间也能获得相同的元数据。

  • id_column (str, optional) – item_id 列的名称,如果它与默认值不同。此参数仅在构建 TimeSeriesDataFrame 时使用,使用格式 1(没有多索引的 DataFrame)或格式 2(文件路径)。

  • timestamp_column (str, optional) – timestamp 列的名称,如果它与默认值不同。此参数仅在构建 TimeSeriesDataFrame 时使用,格式为 1(没有多索引的 DataFrame)或 2(文件路径)。

  • num_cpus (int, default = -1) – 用于并行处理可迭代数据集的CPU核心数。设置为-1以使用所有核心。此参数仅在构建格式4(可迭代数据集)的TimeSeriesDataFrame时使用。

freq

一个与pandas兼容的字符串,用于描述时间序列的频率。例如,"D" 表示每日数据, "h" 表示每小时数据等。此属性是根据时间戳自动确定的。有关可能值的完整列表,请参阅 pandas文档

Type:

字符串

num_items

数据集中项目(时间序列)的数量。

Type:

整数

item_ids

数据集中包含的唯一时间序列ID列表。

Type:

pd.Index

__init__(data: DataFrame | str | Path | Iterable, static_features: DataFrame | str | Path | None = None, id_column: str | None = None, timestamp_column: str | None = None, num_cpus: int = -1, *args, **kwargs)[source]

方法

convert_frequency

将数据框中的每个时间序列转换为给定的频率。

copy

复制TimeSeriesDataFrame。

dropna

删除包含NaN的行。

fill_missing_values

填充由NaN表示的缺失值。

from_data_frame

Construct a TimeSeriesDataFrame from a pandas DataFrame.

from_iterable_dataset

从字典的可迭代对象中构造一个TimeSeriesDataFrame,每个字典代表一个单一的时间序列。

from_path

Construct a TimeSeriesDataFrame from a CSV or Parquet file.

from_pickle

读取腌制时间序列数据框的便捷方法。

get_model_inputs_for_scoring

Prepare model inputs necessary to predict the last prediction_length time steps of each time series in the dataset.

infer_frequency

根据观测的时间戳推断时间序列的频率。

num_timesteps_per_item

数据框中每个时间序列的长度。

slice_by_time

从每个时间序列中选择一个子序列,时间戳介于开始(包括)和结束(不包括)之间。

slice_by_timestep

从每个时间序列中选择一个子序列,介于开始(包括)和结束(不包括)索引之间。

split_by_time

Split dataframe to two different TimeSeriesDataFrame s before and after a certain cutoff_time.

to_data_frame

Convert TimeSeriesDataFrame to a pandas.DataFrame

train_test_split

从给定的数据集中生成训练/测试分割。

属性

freq

item_ids

num_items

static_features