python - 如何从现在开始拆分最后 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
在训练中显示和测试数据拆分不应该相同。
解决方案
过去 7 天的数据集中似乎只有 5 行(工作日),这就是为什么您的测试集只显示 5 行。
'2019-02-01' 包含在您的训练和测试集中的原因是因为
df.iloc[start_ind:end_ind]
检索行 fromstart_ind
toend_ind
both inclusive。(这在文档中被提及为警告。您可以在此处查看。)要正确拆分,您可以在火车测试中包含直到 8 天前的所有日期,并在测试集中包含最后 7 天。
推荐阅读
- optaplanner - 在车辆路径问题 (VRP) 中使用 Optaplanner 对车队进行长途旅行规划
- r - 关于 R 中的 prcomp() 的问题。我希望我的国家名称出现在情节上
- ios - 使用 vDSP 对矢量进行去隔行扫描
- javascript - 如何使用相同的函数根据名称将多个项目添加到数组列表中?
- django - 我怎样才能让用户只投票一次
- git - Git - 在分支之间复制更正
- css - 无法隐藏具有特定属性的 div
- reactjs - 为什么输入不在标题中?
- azure - 在本地创建 Azure VM 副本并将其部署在不同的实例上
- java - 如何将 String 转换为 int 并在其上调用方法?