TimeSeriesDataFrame.slice_by_timestep

TimeSeriesDataFrame.slice_by_timestep(start_index: int | None = None, end_index: int | None = None) TimeSeriesDataFrame[source]

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

此操作相当于从每个时间序列中选择一个切片 [start_index : end_index],然后将这些切片组合成一个新的 TimeSeriesDataFrame。请参见下面的示例。

返回原始数据的副本。这对于构建用于验证的保留集非常有用。

Parameters:
  • start_index (intNone) – 每个时间序列切片的起始索引(包含)。 负值从每个时间序列的末尾开始计数。 当设置为 None 时,切片从每个时间序列的开头开始。

  • end_index (intNone) – 每个时间序列切片的结束索引(不包含)。 负值从每个时间序列的末尾开始计数。 当设置为 None 时,切片包括每个时间序列的末尾。

Returns:

ts_df – 一个新的时间序列数据框,包含原始时间序列在开始和结束索引之间的条目。

Return type:

TimeSeriesDataFrame

示例

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

选择每个时间序列的第一个条目

>>> df.slice_by_timestep(0, 1)
                    target
item_id timestamp
0       2019-01-01       0
1       2019-01-02       3
2       2019-01-03       6

选择每个时间序列的最后2个条目

>>> df.slice_by_timestep(-2, None)
                    target
item_id timestamp
0       2019-01-02       1
        2019-01-03       2
1       2019-01-03       4
        2019-01-04       5
2       2019-01-04       7
        2019-01-05       8

选择每个时间序列中除最后一项之外的所有条目

>>> df.slice_by_timestep(None, -1)
                    target
item_id timestamp
0       2019-01-01       0
        2019-01-02       1
1       2019-01-02       3
        2019-01-03       4
2       2019-01-03       6
        2019-01-04       7

复制整个数据框

>>> df.slice_by_timestep(None, None)
                    target
item_id timestamp
0       2019-01-01       0
        2019-01-02       1
        2019-01-03       2
1       2019-01-02       3
        2019-01-03       4
        2019-01-04       5
2       2019-01-03       6
        2019-01-04       7
        2019-01-05       8