Pandas 如何从去年的同一个月减去熊猫的价值?
我有下面的数据框,我需要从去年的同一个月减去值,并将其保存在输出中:Pandas 如何从去年的同一个月减去熊猫的价值?,pandas,Pandas,我有下面的数据框,我需要从去年的同一个月减去值,并将其保存在输出中: 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 0
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
首先创建
DatetimeIndex
,然后用新的Series
减去by12
months,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