【问题标题】:Train test split on the basis of date in Python, is it possible?在 Python 中根据日期训练测试拆分,这可能吗?
【发布时间】:2020-04-03 06:45:30
【问题描述】:

我想按日期拆分数据,如下所示:

数据应该分为:

  • 火车(2007 年 6 月 - 2015 年 5 月)数据
  • 测试(2015 年 6 月 - 2015 年 12 月)数据

有人可以帮我处理这段代码吗?

【问题讨论】:

  • 您需要提供一些代码,说明您到目前为止所做的工作、代码中存在的问题以及有关您的数据的更多信息,以便在此处获得帮助。
  • 我认为根据日期拆分数据并不难,但您必须显示您的(示例)数据。
  • 你不应该把这个(如果你是)认为是train_test_split 问题。这只是一个按日期范围划分的数据框。

标签: python jupyter-notebook data-analysis


【解决方案1】:

您应该通过提供您尝试拆分的数据样本来更加具体。

一个典型的情况是你有一个数据框df 和一个datetimestamp 列。然后,为了获得您的训练测试拆分,定义一个掩码就足够了,例如:

import pandas as pd

break_date = pd.Timestamp("2015-06-01 00:00:00")
X = df[df["timestamp"] <= break_date]
y = df[df["timestamp" > break_date]

请注意,在时间序列的情况下,将数据拆分为训练子集和测试子集时会有一些微妙之处。例如,请参阅here

【讨论】:

  • 您不认为timestamp 列中的所有值也应该转换为 pd Timestamp 对象以使其正常工作。它们将是普通数据集中的字符串。
  • 字符串时间戳可以使用pd.to_datetime转换为时间戳数据类型。如果日期字符串是 ISO,则设置 break_date = "2015-06-01 00:00:00" 将起作用。当然,没有数据样本,我们不知道会发生什么。
猜你喜欢
  • 2022-10-18
  • 2018-12-21
  • 2020-09-12
  • 2019-09-11
  • 2023-02-12
  • 2019-12-09
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
相关资源
最近更新 更多