如何获得上一季度和去年的价值

时间:2015-03-27 16:04:05

标签: python pandas

我每个季度都有一个包含数据的数据框'

我希望上一季度的价值和我季度价值旁边的前四个季度(前一年)的价值。

最好的方法是什么:

  • 转换为日期
  • 按照数据和索引的顺序播放?

我可以创建一个特定的功能,但它会很慢而且很脏

数据示例:

date    store    value
2014Q4    A        100
2014Q3    A        90
2014Q2    A        80
2014Q1    A        70
2013Q4    A        110
2013Q3    A        60    
2013Q2    A        80

我想要这个:

date    store    value   previous_q   previous_y
2014Q4    A        100     90            110
2014Q3    A        90      80            60
2014Q2    A        80      70            80 
2014Q1    A        70     110             :
2013Q4    A        110     60
2013Q3    A        60      80
2013Q2    A        80      :

1 个答案:

答案 0 :(得分:2)

使用Shift。

http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.shift.html

import pandas as pd

index = ['14Q1','14Q2','14Q3','14Q4','15Q1']
df = pd.DataFrame({'A':range(16,21),'B':range(11,16)},index=index)

df['C'] = df.B.shift(1)
df['D'] = df.B.shift(4)

       A   B   C   D
14Q1  16  11 NaN NaN
14Q2  17  12  11 NaN
14Q3  18  13  12 NaN
14Q4  19  14  13 NaN
15Q1  20  15  14  11

编辑:删除了fillna(0)。保留NA是有道理的。