如何分割过去 7 天的日期

我想从现在开始的最后 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在训练和测试中显示数据拆分不应该相同。


阿晨1998
浏览 157回答 1
1回答

回首忆惘然

过去 7 天的数据集中似乎只有 5 行(工作日),这就是为什么您的测试集仅显示 5 行。'2019-02-01' 包含在您的训练和测试集中的原因是因为df.iloc[start_ind:end_ind]从start_ind到end_ind 都包含检索行。(这在文档中作为警告提到。您可以在此处查看。)要正确拆分,您可以在训练测试中包含 8 天前的所有日期,并在测试集中包含最后 7 天。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python