Python 3.7 , 3.8 любая версия, которую я использовал для python pandas datareader, и проблемы с get_data_yahoo, текущая дата возвращается через 5 дней через несколько минут

#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 минут после предыдущего дня и обратно, как будто что-то кэшируется, но я проверил это. и объем информации исчисляется миллиардами, когда она исчисляется только миллионами