TimeSeriesDataFrame 类

具有用于时序分析和预测的附加属性的 pandas.DataFrame 的子类。

具有用于时序分析和预测的附加属性的 pandas.DataFrame 的子类。

示例:

data1 = {'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [15, 25, 30], 'd': [1, 1, 2], ... 'date': pd.to_datetime(['2017-01-01', '2017-01-02', '2017-01-03'])} df1 = TimeSeriesDataFrame(data1, grain_colnames = ['a','b'], time_colname = 'date', ... ts_value_colname = 'c', group_colnames = 'd') data2 = {'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [15, 25, 30], 'd': [1, 1, 2], ... 'date': pd.date_range('2017-01-01', periods = 3, freq = 'D')} df2 = TimeSeriesDataFrame(data2, grain_colnames = 'a', time_colname = 'date', ... ts_value_colname = 'a', group_colnames = ['b','c']) data3 = {'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [15, 25, 30], 'd': [1, 1, 2], ... 'month': pd.PeriodIndex(['2012-01', '2012-02', '2012-03'], ... dtype = 'period[M]', freq = 'M')} df3 = TimeSeriesDataFrame(data3, grain_colnames = ['a', 'b'], time_colname = 'month', ... ts_value_colname = 'b') data4 = {'a': [1,2,3], 'b': [4,5,6], 'c': [15, 25, 30], 'd': [1, 1, 2], ... 'month': [pd.Period('2012-01'), pd.Period('2012-02'), pd.Period('2012-03')]} df4 = TimeSeriesDataFrame(data4, grain_colnames = 'a', time_colname = 'month', ... ts_value_colname = 'b', group_colnames =['c','d'])

继承
pandas.core.frame.DataFrame
TimeSeriesDataFrame

构造函数

TimeSeriesDataFrame(data, time_colname, index=None, columns=None, dtype=None, copy=True, grain_colnames=None, origin_time_colname=None, ts_value_colname=None, group_colnames=None)

参数

data
必需

请参阅 pandas.DataFrame

index
必需

请参阅 pandas.DataFrame

columns
默认值: None

请参阅 pandas.DataFrame

copy
默认值: None

请参阅 pandas.DataFrame

dtype
默认值: None

请参阅 pandas.DataFrame

grain_colnames
strlist
默认值: True

标识粒度列的列标签。

粒度列是用于标识现实世界中属于同一粒度的数据的列。

下面是一些简单的示例 - 以下销售数据包含两家店铺两年的年度销售数据。 在此示例中,grain_colnames=['store']。


>>>          year  store  sales
... 0  2016-01-01      1     56
... 1  2017-01-01      1     98
... 2  2016-01-01      2    104
... 3  2017-01-01      2    140

另一个销售数据集包含两个店铺销售的两款产品的两年年度销售数据。 此处,grain_colnames=['store', 'product']。


>>>          year  store  product  sales
... 0  2016-01-01      1        1     56
... 1  2017-01-01      1        1     98
... 2  2016-01-01      2        1    104
... 3  2017-01-01      2        1    140
... 4  2016-01-01      1        2    100
... 5  2017-01-01      1        2    201
... 6  2016-01-01      2        2     65
... 7  2017-01-01      2        2     79
time_colname
str
默认值: None

标识时间轴的列标签。 时间列应为以下类型之一:Timestamp、DatetimeIndex、Period 或 PeriodIndex。 请参阅 pandas.Types.Time

ts_value_colname
str
默认值: None

标识目标列的列标签。 目标是预测的主要数量。

group_colnames
strlist
默认值: None

标识跨多个时序的组的列标签。

origin_time_colname
str
默认值: None

标识给定行特征的起始日期的列标签。

方法

check_duplicates

检查索引和/或数据帧列中的重复值。

check_regularity

检查整个数据帧的规律性。

如果数据帧中的每个时序是有规律的,则数据帧是有规律的

check_regularity_by_grain

检查数据帧中每个时序的规律性。

如果满足以下条件,则时序是有规律的:

  1. 时间索引中没有不规律的间隙
  2. 时间索引中没有重复的时间
  3. 时间索引中没有缺失值

如果存在预测相关的粒度列(例如 origin_time),则按如下所示执行规律性检查:

  1. 确保每个完整粒度没有重复的时间索引

    组中列出。 此处的“完全粒度”是指所有粒度列,包括时序粒度列和预测相关的粒度列。

  2. 将删除每个时序粒度组中的重复时间索引。 然后,将确定每个时序粒度组中每个已删除重复数据的时间索引的规律性。

compute_ts_value_summary

计算目标列的摘要统计信息。

即由 ts_value_colname 指定的列。 计算的统计信息包括缺失值的百分比、零值的百分比、时序的差异系数。

construct_from_json

从 JSON 字符串构造 TimeSeriesDataFrame。

输入字符串应符合 TimeSeriesDataFrame.to_json() 中使用的序列化格式。

count_ts

统计数据中的唯一时序数量。

deduplicate_index

删除 TimeSeriesDataFrame 索引中重复的粒度列。

如果在数据帧操作期间使用,则粒度列将会重复。 将粒度列移入和移出数据帧索引时,有时会发生这种情况。

equals

检查两个 TimeSeriesDataFrame 是否相等。

此方法旨在用于单元测试。

fill_datetime_gap

填补 TimeSeriesDataFrame 中的日期/时间间隙。

目标是将 TimeSeriesDataFrame 转换为常规 TimeSeriesDataFrame。 有关常规 TimeSeriesDataFrame 的定义,请参阅 TimeSeriesDataFrame.check_regularity_by_grain。


>>> data1 = pd.DataFrame(
...   {'store': ['a', 'a', 'a', 'b', 'b'],
...    'brand': ['a', 'a', 'a', 'b', 'b'],
...    'date': pd.to_datetime(
...      ['2017-01-01', '2017-01-03', '2017-01-04',
...       '2017-01-01', '2017-01-02']),
...    'sales': [1, np.nan, 5, 2, np.nan],
...    'price': [np.nan, 2, 3, np.nan, 4]})
>>> df1 = TimeSeriesDataFrame(data1, grain_colnames=['store', 'brand'],
...                           time_colname='date',
...                           ts_value_colname='sales')
>>> df1
                        price  sales
date       store brand
2017-01-01 a     a        nan   1.00
2017-01-03 a     a       2.00    nan
2017-01-04 a     a       3.00   5.00
2017-01-01 b     b        nan   2.00
2017-01-02 b     b       4.00    nan
>>> df1.fill_datetime_gap(freq='D')
  brand       date  price  sales store
0     a 2017-01-01    NaN    1.0     a
1     a 2017-01-02    NaN    NaN     a
2     a 2017-01-03    2.0    NaN     a
3     a 2017-01-04    3.0    5.0     a
4     b 2017-01-01    NaN    2.0     b
5     b 2017-01-02    4.0    NaN     b
from_time_series_data_set

用于将时序数据集转换为 TimeSeriesDataFrame 的便捷方法。

get_period_end_time_index

在给定了有关时序频率的信息的情况下,推理时间戳隐含的时段结束时间。

有关详细信息,请参阅 get_period_start_time_index。

get_period_start_time_index

获取时段开始时间。

时序中的时间戳通常实际表示一个时间段。 例如,如果频率为每月,则“2017-01-01”可以表示从“2017-01-01”到“2017-01-31”的时段;如果频率为每年,则它可以表示从“2017-01-01”到“2017-12-31”的时段。

在给定了有关时序频率的信息的情况下,此方法将推理数据帧时间戳隐含的时段开始时间。

groupby_grain

按粒度对 TimeSeriesDataFrame 进行分组。

可用于对 TimeSeriesDataFrame 中的单个时序进行操作。 输出中的每个组应包含单个时序。 如果未设置粒度,则结果是包含整个 TimeSeriesDataFrame 的单个组

groupby_group

按组对 TimeSeriesDataFrame 进行分组。

组列可以是常规数据帧列和/或索引。

如果组为 None,则结果是包含整个 TimeSeriesDataFrame 的单个组。

groupby_group_and_horizon

按 group_colnames 属性中的列和 horizon_colname 对 TimeSeriesDataFrame 进行分组。

groupby_index_names

按数据帧索引中的列列表进行分组。

groupby_slice_key

按切片键对 TimeSeriesDataFrame 进行分组。

可用于对 TimeSeriesDataFrame 中的单个时序进行操作。 输出中的每个组应包含单个时序。 如果未设置粒度,则结果是包含整个 TimeSeriesDataFrame 的单个组

identity_grain_level

未为 TimeSeriesDataFrame 指定 grain_colnames 时的名称。

infer_freq

推理 TimeSeriesDataFrame 的频率。

如果找到多个频率,则此方法将返回最常见的频率并输出警告。

infer_freq_by_grain

推理每个粒度的频率。

此方法已弃用,将它保留的目的是为了后向兼容。 :param return_freq_string:

返回频率字符串而不是 pandas.tseries.offsets.DateOffset。

infer_single_freq

获取 TSDF 的频率,在其中可以推理所有时序中的单个统一频率。

否则将返回 None。

merge

覆盖 pandas merge 函数。

  1. 在两个 TimeSeriesDataFrames 上使用时,最好是使用默认值。

  2. 将元数据明智地传输到新对象。 对于左帧和右帧中都存在的类似于列表的元数据,合并帧中的列表项顺序与左对象的顺序相同。

reindex

重写遵循 TimeSeriesDataFrame 元数据的 pandas.reindex。

reset_index

重置请求的数据帧索引级别。

此方法重写 pandas.reset_index,使其遵循 TimeSeriesDataFrame 元数据。

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.reset_index.html

set_index

设置数据帧索引。

此方法重写 pandas.set_index,使其遵循 TimeSeriesDataFrame 元数据。

subset_by_grains

获取按“粒度”指定的数据子集。

需要选择一个或一系列任意粒度时,此函数很有用。 如果需要某个粒度索引范围内的数据,建议使用 pandas.IndexSlice。

subset_by_origin_time

获取与 origin_time 的特定值或某个起始时间范围对应的子集。

主要用例是在多步预测环境中获取预测数据的“最新”切片。

to_json

将 TimeSeriesDataFrame 序列化为 JSON 字符串。

to_time_series_data_set

将 TimeSeriesDataFrame 转换为 TimeSeriesDataSet。

check_duplicates

检查索引和/或数据帧列中的重复值。

check_duplicates(cols)

参数

cols
list(str)
必需

合并到重复项检查中的列名。 列名可以是索引名或数据帧列名。

返回

如果输入列包含重复值,则为 True

返回类型

check_regularity

检查整个数据帧的规律性。

如果数据帧中的每个时序是有规律的,则数据帧是有规律的

check_regularity(freq=None)

参数

freq
str 或 <xref:pandas.tseries.offsets.DateOffset>
默认值: None

数据帧中时序的频率。如果 freq=None,则推理频率。

返回

如果帧中的所有时序是有规律的,则为 True。

返回类型

check_regularity_by_grain

检查数据帧中每个时序的规律性。

如果满足以下条件,则时序是有规律的:

  1. 时间索引中没有不规律的间隙
  2. 时间索引中没有重复的时间
  3. 时间索引中没有缺失值

如果存在预测相关的粒度列(例如 origin_time),则按如下所示执行规律性检查:

  1. 确保每个完整粒度没有重复的时间索引

    组中列出。 此处的“完全粒度”是指所有粒度列,包括时序粒度列和预测相关的粒度列。

  2. 将删除每个时序粒度组中的重复时间索引。 然后,将确定每个时序粒度组中每个已删除重复数据的时间索引的规律性。

check_regularity_by_grain(freq=None)

参数

freq
str 或 <xref:pandas.tseries.offsets.DateOffset>
默认值: None

数据帧中时序的频率。如果 freq=None,则推理频率。

返回

具有规律性检查的数据帧会产生两列:

  1. 一个名为“regular”的布尔列

  2. 一个名为“problems”的字符串列

    提供不规律性的详细信息。

粒度列包含索引。

返回类型

compute_ts_value_summary

计算目标列的摘要统计信息。

即由 ts_value_colname 指定的列。 计算的统计信息包括缺失值的百分比、零值的百分比、时序的差异系数。

compute_ts_value_summary()

返回

目标列统计信息的摘要。

返回类型

construct_from_json

从 JSON 字符串构造 TimeSeriesDataFrame。

输入字符串应符合 TimeSeriesDataFrame.to_json() 中使用的序列化格式。

construct_from_json(json_str)

参数

json_str
str
必需

输入 JSON 字符串。

json_str
必需

返回

构造的数据帧

返回类型

count_ts

统计数据中的唯一时序数量。

count_ts()

返回

数据中的唯一时序数量。

返回类型

int

deduplicate_index

删除 TimeSeriesDataFrame 索引中重复的粒度列。

如果在数据帧操作期间使用,则粒度列将会重复。 将粒度列移入和移出数据帧索引时,有时会发生这种情况。

deduplicate_index(inplace=False, **kwargs)

参数

inplace
bool
默认值: False

如果为 true,则就地删除重复项。 否则返回一个删除了重复项的新 TimeSeriesDataFrame。

**kwargs
必需

传递给 TimeSeriesDataFrame.reset_index() 的关键字参数。

返回

仅在 grain_index 中具有唯一列的 TimeSeriesDataFrame。

equals

检查两个 TimeSeriesDataFrame 是否相等。

此方法旨在用于单元测试。

equals(other)

参数

other
TimeSeriesDataFrame
必需

要比较的 TimeSeriesDataFrame。

返回

如果帧等于“other”,则为 True

返回类型

fill_datetime_gap

填补 TimeSeriesDataFrame 中的日期/时间间隙。

目标是将 TimeSeriesDataFrame 转换为常规 TimeSeriesDataFrame。 有关常规 TimeSeriesDataFrame 的定义,请参阅 TimeSeriesDataFrame.check_regularity_by_grain。


>>> data1 = pd.DataFrame(
...   {'store': ['a', 'a', 'a', 'b', 'b'],
...    'brand': ['a', 'a', 'a', 'b', 'b'],
...    'date': pd.to_datetime(
...      ['2017-01-01', '2017-01-03', '2017-01-04',
...       '2017-01-01', '2017-01-02']),
...    'sales': [1, np.nan, 5, 2, np.nan],
...    'price': [np.nan, 2, 3, np.nan, 4]})
>>> df1 = TimeSeriesDataFrame(data1, grain_colnames=['store', 'brand'],
...                           time_colname='date',
...                           ts_value_colname='sales')
>>> df1
                        price  sales
date       store brand
2017-01-01 a     a        nan   1.00
2017-01-03 a     a       2.00    nan
2017-01-04 a     a       3.00   5.00
2017-01-01 b     b        nan   2.00
2017-01-02 b     b       4.00    nan
>>> df1.fill_datetime_gap(freq='D')
  brand       date  price  sales store
0     a 2017-01-01    NaN    1.0     a
1     a 2017-01-02    NaN    NaN     a
2     a 2017-01-03    2.0    NaN     a
3     a 2017-01-04    3.0    5.0     a
4     b 2017-01-01    NaN    2.0     b
5     b 2017-01-02    4.0    NaN     b
fill_datetime_gap(freq=None, origin=None, end=None)

参数

freq
str 或 <xref:pandas.tseries.offsets.DateOffset>
默认值: None

如果提供了频率字符串,该函数将根据提供的字符串填补日期/时间间隙。 否则,它将推理频率字符串并相应地填充时间索引。 请参阅 offset-alias。

origin
str
默认值: None

如果提供,日期/时间将往后填充为所有粒度的起点。

end
str
默认值: None

如果提供,日期/时间将往前填充为所有粒度的终点。

返回

正确填充具有日期/时间的 TimeSeriesDataFrame。

返回类型

from_time_series_data_set

用于将时序数据集转换为 TimeSeriesDataFrame 的便捷方法。

static from_time_series_data_set(tsds: azureml.automl.runtime._time_series_data_set.TimeSeriesDataSet) -> azureml.automl.runtime.shared.time_series_data_frame.TimeSeriesDataFrame

参数

tsds
必需

要转换为时序数据帧的时序数据集。

返回

新的时序数据帧。

get_period_end_time_index

在给定了有关时序频率的信息的情况下,推理时间戳隐含的时段结束时间。

有关详细信息,请参阅 get_period_start_time_index。

get_period_end_time_index(is_start_of_period=True, freq=None, floor_freq=None)

参数

is_start_of_period
bool
默认值: True

TimeSeriesDataFrame 的“time_colname”列中的时间索引是表示时段的开始还是结束。

freq
str 或 <xref:pandas.tseries.offsets.DateOffset>
默认值: None

数据帧中时序的频率。如果 freq=None,则推理频率。

floor_freq
str 或 <xref:pandas.tseries.offsets.DateOffset>
默认值: None

将根据此处指定的频率,设置计算出的时间指标(精度为微秒)的下限。 默认值为 None,即,根据输入数据的时间索引获取使用的下限频率。

返回

每个数据帧行的时段结束时间

返回类型

<xref:pandas.core.indexes.datetimes.DatetimeIndex>

get_period_start_time_index

获取时段开始时间。

时序中的时间戳通常实际表示一个时间段。 例如,如果频率为每月,则“2017-01-01”可以表示从“2017-01-01”到“2017-01-31”的时段;如果频率为每年,则它可以表示从“2017-01-01”到“2017-12-31”的时段。

在给定了有关时序频率的信息的情况下,此方法将推理数据帧时间戳隐含的时段开始时间。

get_period_start_time_index(is_start_of_period=True, freq=None, floor_freq=None)

参数

is_start_of_period
bool
默认值: True

TimeSeriesDataFrame 的“time_colname”列中的时间索引是表示时段的开始还是结束。

freq
str 或 <xref:pandas.tseries.offsets.DateOffset>
默认值: None

数据帧中时序的频率。如果 freq=None,则推理频率。

floor_freq
str 或 <xref:pandas.tseries.offsets.DateOffset>
默认值: None

将根据此处指定的频率,设置计算出的时间指标(精度为微秒)的下限。 默认值为 None,即,根据输入数据的时间索引获取使用的下限频率。

返回

每个数据帧行的时段开始时间

返回类型

<xref:pandas.core.indexes.datetimes.DatetimeIndex>

groupby_grain

按粒度对 TimeSeriesDataFrame 进行分组。

可用于对 TimeSeriesDataFrame 中的单个时序进行操作。 输出中的每个组应包含单个时序。 如果未设置粒度,则结果是包含整个 TimeSeriesDataFrame 的单个组

groupby_grain(group_keys=False, **kwargs)

参数

group_keys
bool
默认值: False

如果为 True,则在应用时将组键添加到索引。 默认值为 False,因为粒度通常已经是 TimeSeriesDataFrame 索引的一部分。

**kwargs
必需

要传递给 DataFrame.groupby 的其他关键字参数。

返回

GroupBy 对象

groupby_group

按组对 TimeSeriesDataFrame 进行分组。

组列可以是常规数据帧列和/或索引。

如果组为 None,则结果是包含整个 TimeSeriesDataFrame 的单个组。

groupby_group(group_keys=False, **kwargs)

参数

group_keys
bool
默认值: False

如果为 True,则在应用时将组键添加到索引。 默认值为 False,因为我们通常不希望在 groupby-apply 操作中修改 TimeSeriesDataFrame 的索引。

**kwargs
必需

要传递给 DataFrame.groupby 的其他关键字参数

返回

GroupBy 对象

groupby_group_and_horizon

按 group_colnames 属性中的列和 horizon_colname 对 TimeSeriesDataFrame 进行分组。

groupby_group_and_horizon(horizon_colname='horizon', group_keys=False, **kwargs)

参数

horizon_colname
<xref:<xref:'str'>>
默认值: horizon

用作边际列的列名,用于分组。 如果数据帧列或索引中不存在该列,则通过计算 time_index 与 origin_time_index 之间的时间差来计算新列。 此列的值为整数,单位为 TimeSeriesDataFrame 的频率。 注意:如果未设置 origin_time_colname 属性,则无法计算边际列,只会按 group_colnames 进行分组。

group_keys
bool
默认值: False

如果为 True,则在应用时将组键添加到索引。 默认值为 False,因为粒度通常已经是 TimeSeriesDataFrame 索引的一部分。

kwargs
必需

传递给 pandas.DataFrame.groupby 的其他参数

groupby_index_names

按数据帧索引中的列列表进行分组。

groupby_index_names(index_names, group_keys=False, **kwargs)

参数

index_names
必需

索引中用作分组依据的名称

group_keys
默认值: False

boolean

**kwargs
必需

要传递给 DataFrame.groupby 的其他关键字参数

返回

pandas.GroupBy 对象

groupby_slice_key

按切片键对 TimeSeriesDataFrame 进行分组。

可用于对 TimeSeriesDataFrame 中的单个时序进行操作。 输出中的每个组应包含单个时序。 如果未设置粒度,则结果是包含整个 TimeSeriesDataFrame 的单个组

groupby_slice_key(group_keys=False, **kwargs)

参数

group_keys
bool
默认值: False

如果为 True,则在应用时将组键添加到索引。 默认值为 False,因为粒度通常已经是 TimeSeriesDataFrame 索引的一部分。

**kwargs
必需

要传递给 DataFrame.groupby 的其他关键字参数

返回

GroupBy 对象

identity_grain_level

未为 TimeSeriesDataFrame 指定 grain_colnames 时的名称。

identity_grain_level()

参数

cls
必需

infer_freq

推理 TimeSeriesDataFrame 的频率。

如果找到多个频率,则此方法将返回最常见的频率并输出警告。

infer_freq(return_freq_string=False)

参数

return_freq_string
bool
默认值: False

如果为 True,则返回频率字符串;否则返回 pandas.tseries.offsets.DateOffset。

返回

如果未推理频率,则为 None。 如果推理了频率,则默认返回 pandas.tseries.offsets.DateOffset。 如果 return_freq_string=True,则返回偏移别名(频率字符串)。

infer_freq_by_grain

推理每个粒度的频率。

此方法已弃用,将它保留的目的是为了后向兼容。 :param return_freq_string:

返回频率字符串而不是 pandas.tseries.offsets.DateOffset。

infer_freq_by_grain(return_freq_string=False)

参数

return_freq_string
默认值: False

返回

按粒度推理的频率。

返回类型

<xref:pandas.core.series.Series>

infer_single_freq

获取 TSDF 的频率,在其中可以推理所有时序中的单个统一频率。

否则将返回 None。

infer_single_freq(return_freq_string=False)

参数

return_freq_string
bool
默认值: False

如果为 True,则返回频率字符串;否则返回 pandas.tseries.offsets.DateOffset。

返回

如果未推理单个统一频率,则为 None。 如果推理了频率,则默认返回 pandas.tseries.offsets.DateOffset。 如果 return_freq_string=True,则返回偏移别名(频率字符串)。

merge

覆盖 pandas merge 函数。

  1. 在两个 TimeSeriesDataFrames 上使用时,最好是使用默认值。

  2. 将元数据明智地传输到新对象。 对于左帧和右帧中都存在的类似于列表的元数据,合并帧中的列表项顺序与左对象的顺序相同。

merge(right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x', '_y'), copy=True, indicator=False)

参数

right
DataFrame
必需

左数据帧对象

right
必需

右数据帧对象

how
str
默认值: inner

{'left', 'right', 'outer', 'inner'} 中的一个。 默认值为“inner”。

  • left:仅使用左帧中的键,类似于 SQL 左外部联接;

    保留键顺序

  • right:仅使用右帧中的键,类似于 SQL 右外部联接;保留键顺序

  • outer:使用两个帧中的键的并集,类似于 SQL 完全外部联接;按字典顺序将键排序

  • inner:使用两个帧中的键的交集,类似于 SQL 内部联接;保留左键的顺序

on
strlist(str)
默认值: None

用作联接依据的字段名称。 必须在两个数据帧中都可以找到。 如果其中一个为 None 并且不在索引中合并,则它默认会在列的交集中合并。

left_on
list
默认值: None

左数据帧中用作联接依据的字段名称。 可以是数据帧长度的某个向量或向量列表,以使用特定的向量而不是列作为联接键

right_on
list
默认值: None

右数据帧中用作联接依据的字段名称,或每个 left_on 参数的向量/向量列表。

left_index
bool
默认值: False

使用左数据帧中的索引作为联接键。 如果是 MultiIndex,则另一个数据帧中的键数(索引或列数)必须与级别数匹配

right_index
bool
默认值: False

使用右数据帧中的索引作为联接键。 注意事项与 left_index 相同

sort
bool
默认值: True

在结果数据帧中按字典顺序将联接键排序。 如果为 False,则联接键的顺序取决于联接类型(请参阅“how”参数)

suffixes
list
默认值: ('_x', '_y')

分别应用于左侧和右侧重叠列名的后缀

copy
bool
默认值: True

如果为 False,则不会不必要地复制数据

indicator
<xref:boolean> 或 str
默认值: False

如果为 True,则在输出数据帧中添加一个名为“_merge”的列,其中包含有关每行的源的信息。 如果为字符串,则将包含每行的源信息的列添加到输出数据帧,并且列是字符串的命名值。 信息列为 Categorical-type,对于合并键仅出现在“左”数据帧中的观测项,其取值为“left_only”;对于合并键仅出现在“右”数据帧中的观测项,其取值为“right_only”;如果在这两个数据帧中都找到了观测项的合并键,则取值为“both”。

返回

合并的数据帧

返回类型

reindex

重写遵循 TimeSeriesDataFrame 元数据的 pandas.reindex。

reindex(*args, **kwargs)

参数

*args
必需

传递给 pandas.reindex 的位置参数。

**kwargs
必需

传递给 pandas.reindex 的关键字参数。

reset_index

重置请求的数据帧索引级别。

此方法重写 pandas.reset_index,使其遵循 TimeSeriesDataFrame 元数据。

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.reset_index.html

reset_index(level=None, inplace=False, **kwargs)

参数

level
默认值: None

要重置的索引级别。 对于 TimeSeriesDataFrames,级别可以是级别名称或要重置的整数索引的列表。 例如 level=tsdf.grain_colnames。 如果请求的级别删除了一部分粒度索引,则 self.grain_colnames 将会更新以反映更改。 时间索引无法重置。

inplace
bool
默认值: False

如果为 true,则就地重置索引。 否则返回具有重置索引的新 TimeSeriesDataFrame。

**kwargs
必需

传递给 pandas.reset_index 的关键字参数。

返回

如果 inplace=False,则返回具有重置索引的数据帧;如果 inplace=True,则返回 None

返回类型

set_index

设置数据帧索引。

此方法重写 pandas.set_index,使其遵循 TimeSeriesDataFrame 元数据。

set_index(*args, **kwargs)

参数

*args
必需

传递给 pandas.set_index 的位置参数。

**kwargs
必需

传递给 pandas.set_index 的关键字参数。

subset_by_grains

获取按“粒度”指定的数据子集。

需要选择一个或一系列任意粒度时,此函数很有用。 如果需要某个粒度索引范围内的数据,建议使用 pandas.IndexSlice。

subset_by_grains(grains)

参数

grains
str, <xref:iterable>
必需

要返回其粒度的数据。 如果 grain_colnnames 仅包含一个列名,则此值可以是字符串或字符串的可迭代对象。 如果 grain_colnames 包含多个列名,则此值可以是元组/列表的可迭代对象,其中每个元组/列表指定一个粒度。 每个元组/列表中的元素必须遵循与 grain_colnames 相同的顺序。

返回

按粒度指定的数据子集。

返回类型

subset_by_origin_time

获取与 origin_time 的特定值或某个起始时间范围对应的子集。

主要用例是在多步预测环境中获取预测数据的“最新”切片。

subset_by_origin_time(origin_time=None)

参数

origin_time
默认值: None

应在输出中将 origin_time_index 的值限制到的日期或日期子集。 默认值为时间索引最新值的最早起始日期。 例如,在提前三步预测方案中,调用 subset_by_origin_time() 将返回:

  • 在边际 1 进行的提前一步预测

  • 在边际 2 进行的提前两步预测,以及

  • 在边际 3 进行的提前三步预测。

如果未设置 origin_time_colname,此方法将返回整个 TimeSeriesDataFrame 并输出警告。

返回

origin_time 指定的数据子集。

返回类型

to_json

将 TimeSeriesDataFrame 序列化为 JSON 字符串。

to_json()

返回

TimeSeriesDataFrame 的 JSON 表示形式

返回类型

str

to_time_series_data_set

将 TimeSeriesDataFrame 转换为 TimeSeriesDataSet。

static to_time_series_data_set(tsdf: azureml.automl.runtime.shared.time_series_data_frame.TimeSeriesDataFrame) -> azureml.automl.runtime._time_series_data_set.TimeSeriesDataSet

参数

tsdf
必需

要转换的 timeSeriesDataFrame。

返回

时序数据集。

属性

frequency

TimeSeriesDataFrame 的频率,由 pandas.infer_freq 推理。

如果数据帧包含多个具有不同推理频率的粒度,则使用出现次数最多的频率。

grain_colnames

粒度列的列表。

grain_index

将粒度列用作索引。

如果有多个粒度列,则此属性是 pandas.MultiIndex。

group

将数据帧的列分组。

警告

如果组中的任何列是索引的一部分,

则此访问器将会失败。 请慎用。

group_colnames

组列名的列表。

horizon

每行的边际,由 time_index - origin_time_index 定义。

如果未设置 origin_time_colname,则 horizon=None。 此属性的类型为 pandas.TimedeltaIndex。

origin_time_colname

包含 origin_time 值的列的名称。

对于每个观察项,源时间表示使用其中的实际值生成了特征的最晚日期。

origin_time_index

用作 pandas.DatatimeIndex 的数据帧中的源时间。

slice_key_colnames

足以识别唯一时序的列列表。

切片键当前为 grain_colnames + origin_time_colname。

TimeSeriesDataFrame 的子类可能需要实现其自己版本的此属性。

slice_key_index

切片键列用作索引。

如果有多个切片键列,则此属性是 pandas.MultiIndex。

time_and_grain_colnames

包含 time_colname + grain_colnames 的列表。

time_colname

时间轴列名。

time_index

用作 pandas.DatatimeIndex 的数据帧的时间轴。

ts_value

用作 pandas.Series 的数据帧的目标值。

ts_value_colname

预测目标值的列名。