熊猫:获得去年同一天的价值

Pad*_*ddy 3 python time-series pandas

我正在寻找一种方法,如何在同一天获得前一年的价值.

我们有2014-01-01的值,我想创建一个新列,其中包含今天的价值,但是从一年前开始.

表的一个示例,我想获得Previos_Year列.

   Date   Ticks Previos_Year 
2013-01-01  0        NaN
2013-01-02  1        NaN
2013-01-03  2        NaN
....
2014-01-01  3         0
2014-01-02  4         1
Run Code Online (Sandbox Code Playgroud)

到目前为止我尝试了什么:

我在一年中创建了一个新的专栏,

df['Day_in_Year'] = df.Date.dt.dayofyear
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何将它用于我的任务.

另外,我尝试了转换功能:

df['Ticks'].shift(365)
Run Code Online (Sandbox Code Playgroud)

它工作,直到闰年......

Flo*_*oor 7

你可以groupby月和日,然后shift

df['Previous'] = df.groupby([df['Date'].dt.month,df['Date'].dt.day])['Value'].shift()
Run Code Online (Sandbox Code Playgroud)

样本输出:

        Date  Ticks  Value  Previous
0 2013-01-01      0     99       NaN
1 2013-01-02      1      0       NaN
2 2013-01-03      2      5       NaN
3 2014-01-01      3      0      99.0
4 2014-01-02      4      1       0.0
5 2014-01-03      2      5       5.0
7 2014-01-04      2      5       NaN
Run Code Online (Sandbox Code Playgroud)

  • 通常,熊猫问题会得到更快的回答.很高兴我得到了这个. (2认同)