2014-11-01 5 views

ответ

1

Вы можете выбрать строки по значению индекса с помощью 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 
+0

спасибо! Я совсем забыл о .loc – user308827

+0

Что делать, если вы хотите вычислить это для пары сотен строк? – Kartik

+0

@ Kartik: Нет качественной разницы. Однако обратите внимание, что DataFrames хранит данные в формате [на основе столбцов] (http://stackoverflow.com/q/25918149/190597). Поэтому, если столбцы имеют разные 'dtypes', тогда вам лучше создавать свой DataFrame в формате, который позволяет вам брать разницу в столбцах вместо разницы строк. – unutbu

0

вы можете использовать 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)

 Смежные вопросы

  • Нет связанных вопросов^_^