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

У меня есть приведенный ниже фрейм данных, и мне нужно вычесть значение из того же месяца прошлого года и сохранить его в выходных данных:

date            value     output
01-01-2012      20        null
01-02-2012      10
01-03-2012      40
01-06-2012      30
01-01-2013      20           0
01-02-2013      30          20
01-02-2014      60          30
01-03-2014      50          null

1 Ответ

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

Сначала создайте DatetimeIndex, затем вычтите на sub с новым Series на shift на 12 месяцев, MS для начало месяца :

df['date'] = pd.to_datetime(df['date'], dayfirst=True)
df = df.set_index('date')

df['new'] = df['value'].sub(df['value'].shift(freq='12MS'))
print (df)
            value  output   new
date                           
2012-01-01     20     NaN   NaN
2012-02-01     10     NaN   NaN
2012-03-01     40     NaN   NaN
2012-06-01     30     NaN   NaN
2013-01-01     20     0.0   0.0
2013-02-01     30    20.0  20.0
2014-02-01     60    30.0  30.0
2014-03-01     50     NaN   NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...