python划分训练集和测试集_python-根据时间戳将数据分为训练集和测试集

在很多python任务中,我们需要将原始数据进行处理,分成训练集和测试集,以便更深层次的运用这些数据。

工具/原料

pycharm

python3.7

win10/7

方法/步骤

1

首先需要指定编码方式为【utf8】格式,再导入处理数据的包-pandas

994f412043715fdb690f108f468920c5270f8c84.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

2

然后利用pandas读取原始数据,【sep】参数表明原始数据每列数据之间的分隔方式,【names】参数表明给原始数据每一列取一个名字,若是你的数据列名本来就存在,这项可以舍去。

5e615d715fdb3620d915643cabc5260f89358d84.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

3

利用sort_values函数对原数据进行排序,【by】参数表明根据哪一列进行排序,这里选择的是时间戳列。【ascending=False】表明按倒序排序。

423041db3620b93aaca68970ad0f8835dc8a8a84.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

4

分别指定所需训练集和测试集的大小,这里取的是90%和10%。

5e9a2820b93acd8942ea8fba0335dd8a58de8b84.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

5

利用Dataframe的iloc函数,可取出日期最新的10%作为测试集

3761a73acd8920c545202180568a59de44078884.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

6

将【ascending】参数设为True,将原始数据进行正序排列,表明时间从前往后排,取前90%作为训练集。

b87bd38920c5260fec1a743fd2de450789018984.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

END

注意事项

熟练掌握pandas这个工具包很有用的哦!

有问题欢迎交流!

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

举报作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。

展开阅读全部

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 中,可以使用 `train_test_split` 函数来对时间序列数据进行划分训练集测试集。但是,由于时间序列数据具有时间依赖性,因此不能简单地随机划分数据集,而是需要按照时间先后顺序进行划分。 以下是一种可行的方法: 1. 首先,将时间序列数据按照时间先后顺序排序。 2. 然后,根据给定的比例将数据划分训练集测试集,并记录训练集测试集的起始和结束时间戳。 3. 最后,将训练集测试集别保存为 Pandas DataFrame 对象,并返回这两个对象。 示例代码如下: ``` python import pandas as pd from sklearn.model_selection import train_test_split # 读入时间序列数据 data = pd.read_csv('data.csv', parse_dates=['timestamp'], index_col='timestamp') # 按照时间先后顺序排序 data = data.sort_index() # 定义训练集测试集的比例 train_ratio = 0.8 test_ratio = 0.2 # 划分训练集测试集 train_size = int(len(data) * train_ratio) train_data = data.iloc[:train_size] test_data = data.iloc[train_size:] # 记录训练集测试集的起始和结束时间戳 train_start = train_data.index[0] train_end = train_data.index[-1] test_start = test_data.index[0] test_end = test_data.index[-1] # 将训练集测试集保存为 Pandas DataFrame 对象 train_df = pd.DataFrame(train_data) test_df = pd.DataFrame(test_data) # 打印训练集测试集的信息 print('Training set: {} to {}'.format(train_start, train_end)) print('Test set: {} to {}'.format(test_start, test_end)) ``` 在上述代码中,`data.csv` 是包含时间序列数据的 CSV 文件,其中 `timestamp` 是时间戳列,需要在读入数据时进行解析和索引。`train_ratio` 和 `test_ratio` 别是训练集测试集的比例,可以根据实际情况进行调整。最后,将训练集测试集保存为 Pandas DataFrame 对象,并打印出训练集测试集的起始和结束时间戳
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值