Для меня работала переустановка модуля mcrypt
.
$sudo apt-get install php5-mcrypt
$sudo php5enmod mcrypt
Вы можете выбрать строки по значению индекса, используя df.loc
:
In [98]: df.loc['Diff'] = df.loc['RECL_LCC'] - df.loc['RECL_PI']
In [99]: df
Out[99]:
RECL_LCC 1 2 3
RECL_LCC 35.107655 36.015210 28.877135
RECL_PI 36.961519 43.499506 19.538975
Diff -1.853864 -7.484296 9.338160
вы можете использовать функцию diff () :
df.set_index('RECT_LCC', inplace=True)
df.diff(-1)
1 2 3
RECT_LCC
RECT_LCC -1.853864 -7.484296 9.33816
RECL_PI NaN NaN NaN
по умолчанию, она сдвигается на 1 строку. В вашем случае, поскольку вы вычитаете следующую строку вместо предыдущей, вам нужно установить diff (-1)
dtypes
, вам будет лучше строить свой DataFrame в формате, который позволяет вам различать столбцы вместо разницы строк. – unutbu 26 October 2015 в 20:38pd.Series([1,2,3], index=['A','B','C']) - pd.Series([2,1,3], index=['B','A','C'])
, который возвращаетpd.Series([0,0,0], index=['A','B','C'])
. Это очень полезно иногда, но если ваши данные уже выровнены (т. Е. Две серии имеют одинаковый индекс), вы можете получить лучшую производительность, обрабатывая ваши данные как один большой массив NumPy и выполняя ваши вычисления с помощью NumPy вместо Pandas. Это особенно верно, если вы хотите вычислить разницу между каждой парой строк, а не только двумя. – unutbu 26 October 2015 в 20:50shift
и сохраните сдвинутые значения в другом столбце. Функция, которую я искал, былаshift
. В какой-то момент я вспомнил об этом, но забыл детали. – Kartik 26 October 2015 в 21:02