我想从现在开始过去7天分割日期。
这是我的代码。
df = pdr.get_data_yahoo('ibm',
start=datetime.datetime(y-5, m, d),
end=pd.datetime.now().date())
split_date = datetime.datetime(y, m, d-7)
train = df.loc[:split_date, ['Close']]
test = df.loc[split_date:, ['Close']]
print(train)
print("################################")
print(test)
它显示这样的结果。
............
2019-01-25 133.970001
2019-01-28 134.270004
2019-01-29 134.330002
2019-01-30 134.380005
2019-01-31 134.419998
2019-02-01 134.100006
##################################################################
Close
Date
2019-02-01 134.100006
2019-02-04 135.190002
2019-02-05 135.550003
2019-02-06 136.320007
2019-02-07 133.000000
print(test)
应该显示最近7天的数据,但是为什么它仅显示5天,以及为什么2019-02-01 134.100006
在火车上显示并测试数据拆分应该不相同。
答案 0 :(得分:1)
最近7天数据集中似乎只有5行(工作日),这就是为什么测试集仅显示5行的原因。
在训练和测试集中都包含“ 2019-02-01”的原因是因为df.iloc[start_ind:end_ind]
从start_ind
到end_ind
检索行包容性。 (在文档中将其作为警告来提及。您可以检查here。)要正确分割,可以在火车测试中包括直到8天前的所有日期,并在测试集中包括过去7天。