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

Мне нужно рассчитать разницу между 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
(а это две разные компании, это не имеет смысла).
У меня вопрос, как рассчитать разницу между значениями строк, но для каждого периода и для каждой компании. Например.

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