#python-3.x #yahoo-finance #pandas-datareader
Вопрос:
При использовании моего скрипта python, который использует pandas-DataReader v10 и pandas v1.3.3 get_data_yahoo (), при первом запуске он будет показывать последние 5 дней правильно, потому что я слежу за этим в течение последних 5 дней, затем примерно через минуту или две он меняется на то, что вы видите ниже, я использую python 3.7.10. Дата сдвигается на 2 недели назад, а объем за последние 4 дня сильно снижается, текущий день всегда правильный, хорошо
-----------------------------------------
def get_data(tickers):
df = pdr.get_data_yahoo(tickers)
return df
for df in tickers:
df = get_data(df) # this function retrieve's stock information from yahoo finance
df = pd.DataFrame(df.Close)
print(df.tail(5)
--------------------------------------------
#1 --- works correctly
Close
Date
2021-08-15 11.2500
2021-09-16 9.9600
2021-09-17 11.0600
2021-09-20 11.7300
2021-09-21 13.7001
#2 --- doesn't work correctly
Close
Date
2021-08-31 5.9600
2021-09-01 7.4000
2021-09-02 6.4900
2021-09-03 6.7000
2021-09-21 13.7001
Комментарии:
1. Ваш вывод «работает правильно» показывает скачок на месяц от
2021-08-15
до2021-06-16
. Из-за этого очень трудно догадаться, в чем на самом деле заключается проблема, которую вы описываете. Имеет ли смысл остальная часть фрейма данных? Вы смотрите толькоtail
здесь, но присутствуют ли другие точки данных, если они не в порядке?
Ответ №1:
Да, tail() показывает данные, которые находятся в последнем местоположении, и данные, отображаемые на экране, могут отличаться. Если вы хотите проверить данные, отсортируйте и сравните их по дате.
print(df.sort_values('Date').tail(5))
Комментарии:
1. Функция tail() работает правильно, но дата меняется примерно через 5-6 минут после предыдущего дня и обратно, как будто что-то кэшируется, но я проверил это. и объем информации исчисляется миллиардами, когда она исчисляется только миллионами