Вычесть строки в индексированном фрейме данных - PullRequest
0 голосов
/ 03 октября 2018

Я сейчас работаю с этим фреймом данных.Он индексируется по году и стране.Что я хотел бы сделать, это вычесть значения для "Military_exp" для 2011 года и значения для "Military_exp" для 2010 года. Есть ли способ сделать это?

                       gdp_share    military_exp
year    Country                     
2010    USA            5.0  768465792.0
        China          2.0  138028416.0 
        Korea          3.0  31117330.0  
        Russia         4.0  43120560.0  
2011    USA            5.0  758988352.0
        China          2.0  149022400.0
        Korea          3.0  31543720.0
        Russia         3.0  46022120.0

1 Ответ

0 голосов
/ 03 октября 2018

IIUC

df.groupby(level=1)['military_exp'].diff()
Out[195]: 
year  Country
2010  USA               NaN
      China             NaN
      Korea             NaN
      Russia            NaN
2011  USA        -9477440.0
      China      10993984.0
      Korea        426390.0
      Russia      2901560.0
Name: military_exp, dtype: float64

Обновление

df.loc[2011,'military_exp']-df.loc[2010,'military_exp']
Out[197]: 
Country
USA       -9477440.0
China     10993984.0
Korea       426390.0
Russia     2901560.0
Name: military_exp, dtype: float64
...