#python #pandas #numpy
Вопрос:
Я знаю, что было бы больше вопросов для кумулятивного разделения на stackoverflow. Но мой вопрос отличается от этих вопросов.
На самом деле я хочу провести комулятивное разделение, как мы используем комулятивную сумму (cumsum) и комулятивный продукт(cumprod) в python. Но в python нет функции кумулятивного деления. Если у вас есть какая-то альтернатива для этого, тогда скажите мне.
Проблема:- Ниже приведен фрейм данных (DF), в котором мне нужно создать столбец скидки и выполнить накопительное деление в столбце (скидка).
df:-
Rates Discount
0.000028745455 1/(1 Rates)
0.000028745455 Discount[0]/(1 Rates)
0.000028745455 Discount[1]/(1 Rates)
0.000028745455 Discount[2]/(1 Rates)
0.000028745455 Discount[3]/(1 Rates)
0.000028745455 Discount[4]/(1 Rates)
0.000028745455 Discount[5]/(1 Rates)
Результат:-
Rates Discount
0.000028745455 0.999971255
0.000028745455 0.999942512
0.000028745455 0.999913769
0.000028745455 0.999885026
0.000028745455 0.999856285
0.000028745455 0.999827545
0.000028745455 0.999798805
Ответ №1:
Попробуйте с cumprod
df['out'] = (1/(df.Rates 1)).cumprod()
Out[538]:
0 0.999971
1 0.999943
2 0.999914
3 0.999885
4 0.999856
5 0.999828
6 0.999799
Name: Rates, dtype: float64
Скидка[1] = Скидка[0]/(1 Тарифы) = 1 / (1 Тарифы)^2
Комментарии:
1. Привет, БЕНИ, я получил желаемый результат. Спасибо. Не могли бы вы объяснить, пожалуйста, как вы это сделали, используя cumprod ()
2. @Скидка Yaser[1] = Скидка[0]/(1 Тарифы) = 1 / (1 Тарифы)^2 вот почему cumprod работает ~