Как разделить дату за последние 7 дней - PullRequest
0 голосов
/ 07 февраля 2019

Я хочу разделить дату за последние 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 показывать в поезде и тестировать разделение данных не должно совпадать.

1 Ответ

0 голосов
/ 07 февраля 2019
  • Похоже, что в вашем наборе данных за последние 7 дней было только 5 строк (дней недели), поэтому в вашем тестовом наборе только 5 строк.

  • Причина, по которой «2019-02-01» входит в наборы поездов и тестов, заключается в том, что df.iloc[start_ind:end_ind] извлекает строки от start_ind до end_ind , включая оба .(Это упоминается как предупреждение в документации. Вы можете установить здесь .) Чтобы правильно разделить, вы можете включить все даты до 8 дней назад в свой тест на поезд и включить последние 7 дней в свой набор тестов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...