根据日期将数据框分为两部分

kus*_*ush 4 python dataset

我有1000行这样的数据集

 Date,      Cost,         Quantity(in ton),    Source,          Unloading Station
    01/10/2015, 7,            5.416,               XYZ,           ABC
Run Code Online (Sandbox Code Playgroud)

我想根据日期拆分数据。例如,截至日期20.12.2016是培训数据,之后是测试数据。

我应该如何分割?可能吗?

Max*_*axU 7

假设您的数据集是 pandas 数据框并且该Date列是datetimedtype:

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

df_training = df.loc[df['Date'] <= split_date]
df_test = df.loc[df['Date'] > split_date]
Run Code Online (Sandbox Code Playgroud)


Say*_*ane 7

您可以通过将列转换为pandas to_datetime类型并将其设置为index来轻松地做到这一点。

import pandas as pd
df['Date'] = pd.to_datetime(df['Date'])
df = df.set_index(df['Date'])
df = df.sort_index()
Run Code Online (Sandbox Code Playgroud)

一旦使用这种格式的数据,就可以简单地将日期用作创建分区的索引,如下所示:

# 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)
Run Code Online (Sandbox Code Playgroud)