Рассчитать процентное изменение между каждой скользящей n-й строкой в ​​пандусном фрейме данных - PullRequest
0 голосов
/ 13 января 2019

Как я могу рассчитать процентное изменение между каждой скользящей n-й строкой в ​​Pandas DataFrame? Используя каждый второй ряд в качестве примера:

С учетом следующего кадра данных:

>df = pd.DataFrame({"A":[14, 4, 5, 4, 1, 55], 
               "B":[5, 2, 54, 3, 2, 32],  
               "C":[20, 20, 7, 21, 8, 5], 
               "D":[14, 3, 6, 2, 6, 4]})

Я хотел бы, чтобы результирующий DataFrame был:

enter image description here

Но самое близкое, что я получаю, используя этот код:

>df.iloc[::2,:].pct_change(-1)

Что приводит к этому:

enter image description here

Он выполняет вычисления для каждой второй строки, но это не то же самое, что скользящее окно вычисления каждой n-й строки. Я сталкивался с подобным постом в стеке, но этот пример не очень прост.

Кроме того, в качестве бонуса я хотел бы отобразить полученный результат в процентах с точностью до двух десятичных знаков.

Спасибо за ваше время!

1 Ответ

0 голосов
/ 13 января 2019

Понял! Используйте опцию «периоды» для «pct_change ()».

>df.pct_change(periods=-n) #where n=2 for the given example.
...