Google colab неправильно выводит историю дивидендов yfinance

#python #pandas #dataframe #yfinance

Вопрос:

Я создал python, который очищает файл Google Sheets, определяет акции, которые я хочу обновить (помечен столбцом «Да»), затем проходит серию обновлений ячеек (рост выручки за 3 года, текущая цена, дата прибыли, цена на последнюю дату прибыли, eps и т. Д.). Часть общего сценария состоит в том, чтобы определить годы с увеличением дивидендов. Первоначально это работало нормально, но, поскольку я добавил больше элементов в файл Sheets и последующий python, в этом разделе теперь нет ошибок. Первоначально он дал результат «=0/0» за годы роста дивидендов (он не нашел никаких данных о дивидендах). Со вчерашнего дня он снова начал получать информацию о дивидендах, но только за последний год, поэтому он показывает «=1/1» для скорости увеличения годовых дивидендов (это приведет к увеличению в 4 квартале 2020 года и в 1, 2, 3 и 4 кварталах 2021 года, поэтому 2021 год всегда увеличивался, если дивиденды не были отменены).

Если я запускаю этот конкретный подраздел python в его собственном мини-запуске, то он работает так, как задумано, извлекает полную многолетнюю историю и правильно вычисляет математику. Я не мастер python, но, насколько мне известно, я не вижу НИКАКИХ изменений в сценарии, которые могли бы привести к тому, что он будет извлекать только небольшое подмножество (или вообще ничего) из истории дивидендов в рамках более широкой работы. Надеюсь, что это замечательное сообщество поможет мне решить проблему.

Спасибо!

Раздел python, который извлекает, идентифицирует и выдает информацию о темпах роста дивидендов.

 !pip install yfinance !pip install gspread-formatting import yfinance as yf, datetime, pandas as pd, gspread, gspread_formatting as gsf from datetime import date, datetime, timedelta ################################ stock = yf.Ticker("iipr")  df = pd.DataFrame(stock.dividends) # Define the dataframe df = df.resample('Y').sum() # Sum by Year df['Growth'] = df.Dividends.pct_change().mul(100).round(2) # Identify growth years DivInc = df[(df['Growth']gt;0)].count() # Growth ct DivTot = df.count() # Total ct (series)  print(stock.dividends) # Used for manual audit of data print(df) # Used for manual audit of df print('='   str(DivInc.Growth)   '/'   str(DivTot.Growth)) # Used for manual audit of results