规范化数据集以寻找季节性和平均值 python pandas

Normalizing a data set to look for seasonalities and average python pandas

使用数据集,我想使用 pandas 围绕中心日期重新索引以下内容。例如,在第一个数据集上,我想在 2009 年 12 月 22 日左右生成一个索引,并给它赋值 0,之前的任何值都是 -1、-2、-3、-4 等,之后的值是 1, 2,3,4,5。有没有人对如何动态管理重建索引有任何建议?我预计必须使用 df.merge(how = 'outer') 将数据集合并在一起,并添加一个额外的列来平均这些值。

重新索引到以下

合并并return以0

为中心

是否如你所愿?

输入数据:

>>> df1
         date     value
0  2009-12-14  4.829653
1  2009-12-15  4.941522
2  2009-12-16  4.066554
3  2009-12-17  4.374824
4  2009-12-18  4.919813
5  2009-12-21  4.774057
6  2009-12-22  4.431368
7  2009-12-23  4.794788
8  2009-12-24  4.496606
9  2009-12-25  4.408936
10 2009-12-28  4.467351
11 2009-12-29  4.834504

>>> df2
         date     value
0  2009-11-24  4.852626
1  2009-11-25  4.785530
2  2009-11-26  4.676981
3  2009-11-27  4.030883
4  2009-11-30  4.563335
5  2009-12-01  4.226778
6  2009-12-02  4.073694
7  2009-12-03  4.715326
8  2009-12-04  4.709705
9  2009-12-07  4.469377
10 2009-12-08  4.727273
11 2009-12-09  4.923308
12 2009-12-10  4.742808
13 2009-12-11  4.168057

>>> pivot_dates
['2009-12-21','2009-12-04']
dfs = [df1[::-1].set_index(df1.index - df1['date'].eq(pivot_dates[0]).argmax() - 1)['value'],
       df2[::-1].set_index(df2.index - df2['date'].eq(pivot_dates[1]).argmax() - 1)['value']]

df = pd.concat(dfs, axis='columns')
df.columns = ['A', 'B']

输出结果:

>>> df
           A         B
-9       NaN  4.168057
-8       NaN  4.742808
-7       NaN  4.923308
-6  4.834504  4.727273
-5  4.467351  4.469377
-4  4.408936  4.709705
-3  4.496606  4.715326
-2  4.794788  4.073694
-1  4.431368  4.226778
0   4.774057  4.563335
1   4.919813  4.030883
2   4.374824  4.676981
3   4.066554  4.785530
4   4.941522  4.852626
5   4.829653       NaN