按月将数据集拆分为训练和测试

Split dataset into training and test by month

我无法在任何地方找到这个问题的答案。我有三个月的数据,我想把它分成前两个月('Jan-19','Feb-19')作为训练集,最后一个月作为测试('Mar-19')。

以前我用这样简单的代码进行随机抽样:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30,random_state=109)

在此之前,将 y 指定为标签,将 x 指定为用于预测的列。我不确定如何将测试和培训分配到我想要的月份。

谢谢

如果您的数据位于 pandas 数据框中,您可以像这样使用子集:

X_train = X[X['month'] != 'Mar-19']
y_train = y[X['month'] != 'Mar-19']

X_test = X[X['month'] == 'Mar-19']
y_test = y[X['month'] == 'Mar-19']

您试试这个选项,看看是否有帮助。

dataset_train = df['2004-02-12 11:02:39':'2004-02-13 23:52:39']
dataset_test = df['2004-02-13 23:52:39':]