Я работаю с панелью данных, в которой указаны расходы многих компаний на исследования и разработки на протяжении многих лет.
То, что я хотел бы сделать, это капитализировать эти расходы, как если бы они были активами. Для тех, кто не знаком с финансовой терминологией, я пытаюсь накапливать значения затрат на НИОКР каждого года, используя следующие значения, уменьшая их стоимость (или «амортизируя») каждый период времени на соответствующую норму амортизации.
Фрейм данных выглядит примерно так:
fyear tic rd_tot rd_dep
0 1979 AMFD 1.345 0.200
1 1980 AMFD 0.789 0.200
.. .. .. .. ..
211339 2017 ACA 3.567 0.340
211340 2018 ACA 2.990 0.340
211341 2018 CTRM 0.054 0.234
Где fyear - финансовый год, ti c - указанный компанией буквенный код c, rd_tot - общие расходы на исследования и разработки за год, а rd_dep применимая норма амортизации.
Пока я смог придумать следующее:
df['r&d_capital'] = [(df['rd_tot'].iloc[:i] * (1 - df['rd_dep'].iloc[:i]*np.arange(i)[::-1])).sum()for i in range(1, len(df)+1)]
Однако проблема в том, что код просто проходит через весь столбец, не принимая во внимание, что затраты на НИОКР должны быть капитализируется в компании (или ti c) указанным c способом. Я также попытался с помощью .groupby (['TIC]), но это не сработало.
Поэтому я пытаюсь найти помощь для решения этой проблемы, чтобы каждый год получать капитализацию затрат на НИОКР по СПЕЦИФИКАЦИИ КОМПАНИИ C.
Большое спасибо за ваша помощь!