Сложная ситуация с сложным темпом роста между двумя разными фреймами данных - PullRequest
0 голосов
/ 14 сентября 2018

Я рассчитываю рассчитать совокупный годовой темп роста между переписными годами (2011, 2016) и использовать этот темп роста для экстраполяции чисел за промежуточные годы.

Например

df_2011.head()
Age      Census_Tract_001   Census_Tract_002
0        100                600    



df_2016.head()
Age      Census_Tract_001   Census_Tract_002
0        400                360    

Затем рассчитайте CAGR в период с 2011 по 2016 год Age Census_Tract_001 Census_Tract_002 0 .3195 -.0971 Применить CAGR к каждому из промежуточных лет

создать df_2012

 Age      Census_Tract_001   Census_Tract_002
 0        131.95             541.74

создать df_2013

 Age      Census_Tract_001   Census_Tract_002
 0        174.108             489.137

создать df_2014

 Age      Census_Tract_001   Census_Tract_002
 0        229.7355           441.6418

создать df_2015

 Age      Census_Tract_001   Census_Tract_002
 0        303.136           398.7584

Моя попытка

Я устал делать следующее Количество лет нью-йорк = 5

Текущий оборот pt =?

Прошлый оборот ppt =?

м = (пт / ппт)

AGR = Годовой темп роста agr = float ((m ** 1 / ny) -1) * 100

Я устал делать это часами, но если я не смогу, я просто опробую ячейки в excel для вычисления, к сожалению ...

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете найти CAGR напрямую, применив формулу

cagr = (df2/df)**(1/5) - 1

    Age     Census_Tract_001    Census_Tract_002
0   NaN     0.319508            -0.09712

Чтобы найти интервал между df с, определите функцию

f = lambda c: c + c*cagr

и составьте ее, вызвав ее с помощьюсостав функции

>>> f(df)
        Age     Census_Tract_001    Census_Tract_002
0       NaN     131.950791          541.728271

>>> f(f(df))
        Age     Census_Tract_001    Census_Tract_002
0       NaN     174.110113          489.115866
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...