下面是一个按月份将数据集分为训练集和测试集的示例代码:
import pandas as pd
from sklearn.model_selection import train_test_split
# 读取数据集
data = pd.read_csv('data.csv')
# 将日期列转换为日期类型
data['date'] = pd.to_datetime(data['date'])
# 按月份排序数据集
data.sort_values(by='date', inplace=True)
# 获取数据集的起止日期
start_date = data['date'].min()
end_date = data['date'].max()
# 按月份划分训练集和测试集
train_start_date = start_date
train_end_date = pd.to_datetime('2019-12-31') # 设置训练集的结束日期
test_start_date = pd.to_datetime('2020-01-01') # 设置测试集的起始日期
test_end_date = end_date
# 划分训练集和测试集
train_data = data[(data['date'] >= train_start_date) & (data['date'] <= train_end_date)]
test_data = data[(data['date'] >= test_start_date) & (data['date'] <= test_end_date)]
# 输出训练集和测试集的大小
print('Train dataset size: ', train_data.shape)
print('Test dataset size: ', test_data.shape)
这个示例代码假设数据集中有一个名为'date'的日期列。首先,我们将日期列转换为日期类型,并按日期排序数据集。然后,我们指定训练集和测试集的起止日期,并根据这些日期将数据集划分为训练集和测试集。最后,我们输出训练集和测试集的大小。