Оптимальный способ итерации полной панды DataFrame - PullRequest
0 голосов
/ 13 января 2019

У меня есть CSV для акций, и я хотел бы добавить столбец с разницей в процентах.

Например:

Оригинал csv:

Date; Price;
Jan; 60.1;
Feb; 59.4;
Mar; 65.9;

И я хочу создать новый столбец DataFrame для панд, включающий изменение в%, например:

Date; Price; Change %;
Jan; 60.1;1.18;
Feb; 59.4;-9.86;
Mar; 65.9;;

В других языках я обычно делал бы это путем итерации данных с циклами FOR, используя индекс FOR для выбора нужной строки. Что-то вроде «Изменить [i] = ((Цена [i] / Цена [i-1]) - 1) * 100» Но мой вопрос таков; Есть ли способ сделать это более простым и оптимальным способом? Как и функция Apply () в R?

Привет! * * 1015

1 Ответ

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

У Pandas есть метод DataFrame, который делает именно это: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.pct_change.html (затем просто умножьте на 100, если хотите).

Кроме того, вы можете просто использовать DataFrame.shift () и делать:

df['Change_pct'] = df['Price']/df['Price'].shift(1)*100
...