Рассчитать разницу между значениями в строках по группам - PullRequest
0 голосов
/ 12 сентября 2018

У меня df вот так:

enter image description here

Мне нужно рассчитать разницу между X1, X2, X3, X4 and X5 для каждой компании, но я знаю только, как рассчитать разницу между всем столбцом.

df['dX1'] = df['X1'].shift(-1) - df['X1']
df['dX2'] = df['X2'].shift(-1) - df['X2']
df['dX3'] = df['X3'].shift(-1) - df['X3']
...

Это плохой подход, потому что он вычитает X1 в строке 74 с X1 в строке 73 (а это две разные компании, это не имеет смысла).

У меня вопрос, как рассчитать разницу между значениями строк, но для каждого периода и для каждой компании. Например.

enter image description here

(я могу загрузить CSVS один за другим и рассчитать diff для каждой компании, затем объединить все в один список, но это займет 2 дня, потому что у меня есть 700 CSV-файлов).

1 Ответ

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

Я думаю, вам нужно DataFrameGroupBy.diff:

cols = ['X1','X2','X3','X4','X5']
df1 = df.groupby('company')[cols].diff(-1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...