根据日期将数据框拆分为两个

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据日期将数据框拆分为两个相关的知识,希望对你有一定的参考价值。

我有像这样1000行的数据集

 Date,      Cost,         Quantity(in ton),    Source,          Unloading Station
    01/10/2015, 7,            5.416,               XYZ,           ABC

我想在日期的基础上拆分数据。对于例如到2016年12月20日为训练数据,之后是测试数据。

我该怎么分裂?可能吗?

答案

您可以通过将列转换为pandas to_datetime类型并将其设置为索引来轻松完成此操作。

import pandas as pd
df['Date'] = pd.to_datetime(df['Date'])
df = df.set_index(df['Date'])
df = df.sort_index()

以这种格式获取数据后,您可以简单地使用日期作为创建分区的索引,如下所示:

# create train test partition
train = df['2015-01-10':'2016-12-20']
test  = df['2016-12-21':]
print('Train Dataset:',train.shape)
print('Test Dataset:',test.shape)
另一答案

假设您的数据集是pandas数据框,并且Date列是datetime dtype:

split_date = pd.datetime(2016,12,20)

df_training = df.loc[df['Date'] <= split_date]
df_test = df.loc[df['Date'] > split_date]

以上是关于根据日期将数据框拆分为两个的主要内容,如果未能解决你的问题,请参考以下文章

Pandas - 根据日期将数据框拆分为多个数据框?

按组将数据框日期拆分为单个最小最大日期范围

如何根据原始数据帧中的总行数将数据帧拆分为两个数据帧

根据唯一ID将pandas数据框划分为测试和训练

将不同类型的 CSV 字符串加载到 Pandas 数据框中,拆分列,解析日期

根据列中的一组参数将数据框拆分为多个数据框