在Python中使用最接近锚日期的一年中的某一天计算跟踪平均值

kxe2p93d  于 2023-05-30  发布在  Python
关注(0)|答案(1)|浏览(221)

我有一个数据框架,每周的价值观不同的系列标识符如下。每个系列的周条目每周都有,但年复一年不一致(例如,一年1/1,下一年1/3,1/2等):

period  series  value

    2017-05-12  R33 720
    2017-05-12  R33 1057
    2017-05-12  R33 337
    2017-05-12  R34 161
    2017-05-12  R35 244
    2017-05-12  R48 2369
    2017-05-19  R31 390
    2017-05-19  R32 562
    2017-05-19  R33 1076
    2017-05-19  R33 738
    2017-05-19  R33 338
    2017-05-19  R34 166
    2017-05-19  R35 250
    2017-05-19  R48 2444
    2017-05-26  R31 419
    2017-05-26  R32 585
    2017-05-26  R33 342
    2017-05-26  R33 755
    2017-05-26  R33 1097
    2017-05-26  R34 166
    2017-05-26  R35 258
    2017-05-26  R48 2525
    2017-06-02  R31 457
    2017-06-02  R32 614
    2017-06-02  R33 774
    2017-06-02  R33 345
    2017-06-02  R33 1119
    2017-06-02  R34 172
    2017-06-02  R35 269
    2017-06-02  R48 2631
    2017-06-09  R31 491
    2017-06-09  R32 634
    2017-06-09  R33 1133
    2017-06-09  R33 784
    2017-06-09  R33 348
    2017-06-09  R34 177
    2017-06-09  R35 274
    2017-06-09  R48 2709
    2017-06-16  R31 513
    2017-06-16  R32 656
    2017-06-16  R33 1138
    2017-06-16  R33 343
    2017-06-16  R33 794
    2017-06-16  R34 182
    2017-06-16  R35 281
    2017-06-16  R48 2770
    2017-06-23  R31 536
    2017-06-23  R32 676
    2017-06-23  R33 341
    2017-06-23  R33 799
    2017-06-23  R33 1140
    2017-06-23  R34 184
    2017-06-23  R35 280
    2017-06-23  R48 2816
    2017-06-30  R31 564
    2017-06-30  R32 699
    2017-06-30  R33 1141
    2017-06-30  R33 810
    2017-06-30  R33 332
    2017-06-30  R34 187
    2017-06-30  R35 287
    2017-06-30  R48 2878
    2017-07-07  R31 588
    2017-07-07  R32 719
    2017-07-07  R33 1144
    2017-07-07  R33 817
    2017-07-07  R33 327
    2017-07-07  R34 193
    2017-07-07  R35 292
    2017-07-07  R48 2936
    2017-07-14  R31 609
    2017-07-14  R32 733
    2017-07-14  R33 319
    2017-07-14  R33 816
    2017-07-14  R33 1135
    2017-07-14  R34 194
    2017-07-14  R35 292
    2017-07-14  R48 2963
    2017-07-21  R31 626
    2017-07-21  R32 743
    2017-07-21  R33 308
    2017-07-21  R33 812
    2017-07-21  R33 1120
    2017-07-21  R34 197
    2017-07-21  R35 294
    2017-07-21  R48 2980
    2017-07-28  R31 651
    2017-07-28  R32 754
    2017-07-28  R33 805
    2017-07-28  R33 296
    2017-07-28  R33 1101
    2017-07-28  R34 200
    2017-07-28  R35 293
    2017-07-28  R48 2999
    2017-08-04  R31 673
    2017-08-04  R32 771
    2017-08-04  R33 1094
    2017-08-04  R33 804
    2017-08-04  R33 290
    2017-08-04  R34 202
    2017-08-04  R35 289
    2017-08-04  R48 3029
    2017-08-11  R31 701
    2017-08-11  R32 798
    2017-08-11  R33 804
    2017-08-11  R33 1087
    2017-08-11  R33 283
    2017-08-11  R34 204
    2017-08-11  R35 292
    2017-08-11  R48 3082
    2017-08-18  R31 728
    2017-08-18  R32 821
    2017-08-18  R33 274
    2017-08-18  R33 800
    2017-08-18  R33 1074
    2017-08-18  R34 206
    2017-08-18  R35 296
    2017-08-18  R48 3125
    2017-08-25  R31 749
    2017-08-25  R32 840
    2017-08-25  R33 1060
    2017-08-25  R33 262
    2017-08-25  R33 797
    2017-08-25  R34 205
    2017-08-25  R35 301
    2017-08-25  R48 3155
    2017-09-01  R31 781
    2017-09-01  R32 872
    2017-09-01  R33 266
    2017-09-01  R33 800
    2017-09-01  R33 1066
    2017-09-01  R34 205
    2017-09-01  R35 296
    2017-09-01  R48 3220
    2017-09-08  R31 809
    2017-09-08  R32 906
    2017-09-08  R33 285
    2017-09-08  R33 1092
    2017-09-08  R33 807
    2017-09-08  R34 208
    2017-09-08  R35 296
    2017-09-08  R48 3311
    2017-09-15  R31 833
    2017-09-15  R32 938
    2017-09-15  R33 304
    2017-09-15  R33 821
    2017-09-15  R33 1125
    2017-09-15  R34 212
    2017-09-15  R35 300
    2017-09-15  R48 3408
    2017-09-22  R31 848
    2017-09-22  R32 964
    2017-09-22  R33 305
    2017-09-22  R33 1130
    2017-09-22  R33 825
    2017-09-22  R34 217
    2017-09-22  R35 307
    2017-09-22  R48 3466
    2017-09-29  R31 861
    2017-09-29  R32 989
    2017-09-29  R33 1127
    2017-09-29  R33 300
    2017-09-29  R33 827
    2017-09-29  R34 220
    2017-09-29  R35 311
    2017-09-29  R48 3508
    2017-10-06  R31 884
    2017-10-06  R32 1024
    2017-10-06  R33 838
    2017-10-06  R33 1149
    2017-10-06  R33 310
    2017-10-06  R34 223
    2017-10-06  R35 315
    2017-10-06  R48 3595
    2017-10-13  R31 901
    2017-10-13  R32 1054
    2017-10-13  R33 302
    2017-10-13  R33 1150
    2017-10-13  R33 848
    2017-10-13  R34 224
    2017-10-13  R35 316
    2017-10-13  R48 3645
    2017-10-20  R31 915
    2017-10-20  R32 1082
    2017-10-20  R33 1174
    2017-10-20  R33 861
    2017-10-20  R33 313
    2017-10-20  R34 224
    2017-10-20  R35 315
    2017-10-20  R48 3710
    2017-10-27  R31 926
    2017-10-27  R32 1107
    2017-10-27  R33 324
    2017-10-27  R33 1199
    2017-10-27  R33 874
    2017-10-27  R34 226
    2017-10-27  R35 317
    2017-10-27  R48 3775
    2017-11-03  R31 925
    2017-11-03  R32 1112
    2017-11-03  R33 876
    2017-11-03  R33 336
    2017-11-03  R33 1212
    2017-11-03  R34 224
    2017-11-03  R35 317
    2017-11-03  R48 3790
    2017-11-10  R31 915
    2017-11-10  R32 1108
    2017-11-10  R33 1214
    2017-11-10  R33 341
    2017-11-10  R33 873
    2017-11-10  R34 220
    2017-11-10  R35 315
    2017-11-10  R48 3772
    2017-11-17  R31 891
    2017-11-17  R32 1090
    2017-11-17  R33 1211
    2017-11-17  R33 871
    2017-11-17  R33 340
    2017-11-17  R34 220
    2017-11-17  R35 314
    2017-11-17  R48 3726
    2017-11-24  R31 876
    2017-11-24  R32 1068
    2017-11-24  R33 866
    2017-11-24  R33 348
    2017-11-24  R33 1214
    2017-11-24  R34 221
    2017-11-24  R35 314
    2017-11-24  R48 3693
    2017-12-01  R31 868
    2017-12-01  R32 1058
    2017-12-01  R33 875
    2017-12-01  R33 360
    2017-12-01  R33 1235
    2017-12-01  R34 221
    2017-12-01  R35 313
    2017-12-01  R48 3695
    2017-12-08  R31 855
    2017-12-08  R32 1033
    2017-12-08  R33 1220
    2017-12-08  R33 360
    2017-12-08  R33 860
    2017-12-08  R34 213
    2017-12-08  R35 305
    2017-12-08  R48 3626
    2017-12-15  R31 811
    2017-12-15  R32 980
    2017-12-15  R33 825
    2017-12-15  R33 330
    2017-12-15  R33 1155
    2017-12-15  R34 204
    2017-12-15  R35 294
    2017-12-15  R48 3444
    2017-12-22  R31 782
    2017-12-22  R32 941
    2017-12-22  R33 809
    2017-12-22  R33 1133
    2017-12-22  R33 324
    2017-12-22  R34 195
    2017-12-22  R35 281
    2017-12-22  R48 3332
    2017-12-29  R31 740
    2017-12-29  R32 875
    2017-12-29  R33 1060
    2017-12-29  R33 759
    2017-12-29  R33 302
    2017-12-29  R34 183
    2017-12-29  R35 268
    2017-12-29  R48 3126
    2018-01-05  R31 664
    2018-01-05  R32 778
    2018-01-05  R33 683
    2018-01-05  R33 224
    2018-01-05  R33 907
    2018-01-05  R34 167
    2018-01-05  R35 251
    2018-01-05  R48 2767
    2018-01-12  R31 614
    2018-01-12  R32 717
    2018-01-12  R33 206
    2018-01-12  R33 851
    2018-01-12  R33 646
    2018-01-12  R34 158
    2018-01-12  R35 244
    2018-01-12  R48 2584
    2018-01-19  R31 555
    2018-01-19  R32 634
    2018-01-19  R33 578
    2018-01-19  R33 729
    2018-01-19  R33 151
    2018-01-19  R34 145
    2018-01-19  R35 233
    2018-01-19  R48 2296
    2018-01-26  R31 525
    2018-01-26  R32 596
    2018-01-26  R33 169
    2018-01-26  R33 550
    2018-01-26  R33 719
    2018-01-26  R34 137
    2018-01-26  R35 220
    2018-01-26  R48 2197
    2018-02-02  R31 488
    2018-02-02  R32 543
    2018-02-02  R33 518
    2018-02-02  R33 703
    2018-02-02  R33 184
    2018-02-02  R34 131
    2018-02-02  R35 213
    2018-02-02  R48 2078
    2018-02-09  R31 432
    2018-02-09  R32 468
    2018-02-09  R33 472
    2018-02-09  R33 178
    2018-02-09  R33 649
    2018-02-09  R34 122
    2018-02-09  R35 213
    2018-02-09  R48 1884
    2018-02-16  R31 403
    2018-02-16  R32 428
    2018-02-16  R33 614
    2018-02-16  R33 440
    2018-02-16  R33 175
    2018-02-16  R34 111
    2018-02-16  R35 204
    2018-02-16  R48 1760
    2018-02-23  R31 382
    2018-02-23  R32 398
    2018-02-23  R33 429
    2018-02-23  R33 611
    2018-02-23  R33 183
    2018-02-23  R34 102
    2018-02-23  R35 189
    2018-02-23  R48 1682
    2018-03-02  R31 359
    2018-03-02  R32 380
    2018-03-02  R33 612
    2018-03-02  R33 189
    2018-03-02  R33 423
    2018-03-02  R34 97
    2018-03-02  R35 177
    2018-03-02  R48 1625
    2018-03-09  R31 314
    2018-03-09  R32 350
    2018-03-09  R33 186
    2018-03-09  R33 420
    2018-03-09  R33 606
    2018-03-09  R34 93
    2018-03-09  R35 169
    2018-03-09  R48 1532
    2018-03-16  R31 270
    2018-03-16  R32 315
    2018-03-16  R33 182
    2018-03-16  R33 602
    2018-03-16  R33 419
    2018-03-16  R34 90
    2018-03-16  R35 169
    2018-03-16  R48 1446
    2018-03-23  R31 242
    2018-03-23  R32 284
    2018-03-23  R33 181
    2018-03-23  R33 422
    2018-03-23  R33 603
    2018-03-23  R34 88
    2018-03-23  R35 166
    2018-03-23  R48 1383
    2018-03-30  R31 229
    2018-03-30  R32 266
    2018-03-30  R33 188
    2018-03-30  R33 606
    2018-03-30  R33 419
    2018-03-30  R34 87
    2018-03-30  R35 166
    2018-03-30  R48 1354
    2018-04-06  R31 217
    2018-04-06  R32 246
    2018-04-06  R33 618
    2018-04-06  R33 196
    2018-04-06  R33 422
    2018-04-06  R34 83
    2018-04-06  R35 171
    2018-04-06  R48 1335
    2018-04-13  R31 207
    2018-04-13  R32 228
    2018-04-13  R33 606
    2018-04-13  R33 185
    2018-04-13  R33 421
    2018-04-13  R34 83
    2018-04-13  R35 175
    2018-04-13  R48 1299
    2018-04-20  R31 205
    2018-04-20  R32 211
    2018-04-20  R33 182
    2018-04-20  R33 421
    2018-04-20  R33 604
    2018-04-20  R34 84
    2018-04-20  R35 177
    2018-04-20  R48 1281
    2018-04-27  R31 223
    2018-04-27  R32 221
    2018-04-27  R33 626
    2018-04-27  R33 436
    2018-04-27  R33 190
    2018-04-27  R34 86
    2018-04-27  R35 187
    2018-04-27  R48 1343
    2018-05-04  R31 243
    2018-05-04  R32 240
    2018-05-04  R33 458
    2018-05-04  R33 204
    2018-05-04  R33 662
    2018-05-04  R34 92
    2018-05-04  R35 195
    2018-05-04  R48 1432
    2018-05-11  R31 275
    2018-05-11  R32 267
    2018-05-11  R33 477
    2018-05-11  R33 694
    2018-05-11  R33 216
    2018-05-11  R34 98
    2018-05-11  R35 204
    2018-05-11  R48 1538
    2018-05-18  R31 299
    2018-05-18  R32 288
    2018-05-18  R33 226
    2018-05-18  R33 496
    2018-05-18  R33 722
    2018-05-18  R34 107
    2018-05-18  R35 213
    2018-05-18  R48 1629
    2018-05-25  R31 328
    2018-05-25  R32 315
    2018-05-25  R33 235
    2018-05-25  R33 748
    2018-05-25  R33 514
    2018-05-25  R34 113
    2018-05-25  R35 221
    2018-05-25  R48 1725
    2018-06-01  R31 351
    2018-06-01  R32 341
    2018-06-01  R33 245
    2018-06-01  R33 773
    2018-06-01  R33 528
    2018-06-01  R34 121
    2018-06-01  R35 231
    2018-06-01  R48 1817
    2018-06-08  R31 377
    2018-06-08  R32 372
    2018-06-08  R33 252
    2018-06-08  R33 547
    2018-06-08  R33 800
    2018-06-08  R34 125
    2018-06-08  R35 239
    2018-06-08  R48 1913
    2018-06-15  R31 406
    2018-06-15  R32 401
    2018-06-15  R33 570
    2018-06-15  R33 828
    2018-06-15  R33 258
    2018-06-15  R34 127
    2018-06-15  R35 246
    2018-06-15  R48 2008
    2018-06-22  R31 430
    2018-06-22  R32 425
    2018-06-22  R33 252
    2018-06-22  R33 835
    2018-06-22  R33 583
    2018-06-22  R34 133
    2018-06-22  R35 251
    2018-06-22  R48 2074
    2018-06-29  R31 460
    2018-06-29  R32 455
    2018-06-29  R33 841
    2018-06-29  R33 245
    2018-06-29  R33 596
    2018-06-29  R34 139
    2018-06-29  R35 257
    2018-06-29  R48 2152
    2018-07-06  R31 480
    2018-07-06  R32 477
    2018-07-06  R33 843
    2018-07-06  R33 238
    2018-07-06  R33 605
    2018-07-06  R34 143
    2018-07-06  R35 260
    2018-07-06  R48 2203
    2018-07-13  R31 507
    2018-07-13  R32 501
    2018-07-13  R33 231
    2018-07-13  R33 838
    2018-07-13  R33 607
    2018-07-13  R34 144
    2018-07-13  R35 259
    2018-07-13  R48 2248
    2018-07-20  R31 527
    2018-07-20  R32 525
    2018-07-20  R33 820
    2018-07-20  R33 215
    2018-07-20  R33 605
    2018-07-20  R34 145
    2018-07-20  R35 256
    2018-07-20  R48 2272
    2018-07-27  R31 552
    2018-07-27  R32 552
    2018-07-27  R33 807
    2018-07-27  R33 206
    2018-07-27  R33 601
    2018-07-27  R34 146
    2018-07-27  R35 249
    2018-07-27  R48 2305
    2018-08-03  R31 574
    2018-08-03  R32 580
    2018-08-03  R33 808
    2018-08-03  R33 204
    2018-08-03  R33 604
    2018-08-03  R34 148
    2018-08-03  R35 244
    2018-08-03  R48 2353
    2018-08-10  R31 590
    2018-08-10  R32 604
    2018-08-10  R33 606
    2018-08-10  R33 195
    2018-08-10  R33 802
    2018-08-10  R34 151
    2018-08-10  R35 239
    2018-08-10  R48 2386
    2018-08-17  R31 611
    2018-08-17  R32 633
    2018-08-17  R33 609
    2018-08-17  R33 190
    2018-08-17  R33 799
    2018-08-17  R34 153
    2018-08-17  R35 238
    2018-08-17  R48 2435
    2018-08-24  R31 637
    2018-08-24  R32 669
    2018-08-24  R33 801
    2018-08-24  R33 188
    2018-08-24  R33 613
    2018-08-24  R34 157
    2018-08-24  R35 240
    2018-08-24  R48 2504
    2018-08-31  R31 659
    2018-08-31  R32 702
    2018-08-31  R33 183
    2018-08-31  R33 799
    2018-08-31  R33 615
    2018-08-31  R34 162
    2018-08-31  R35 246
    2018-08-31  R48 2567
    2018-09-07  R31 679
    2018-09-07  R32 734
    2018-09-07  R33 624
    2018-09-07  R33 182
    2018-09-07  R33 806
    2018-09-07  R34 166
    2018-09-07  R35 250
    2018-09-07  R48 2636
    2018-09-14  R31 709
    2018-09-14  R32 770
    2018-09-14  R33 184
    2018-09-14  R33 635
    2018-09-14  R33 818
    2018-09-14  R34 170
    2018-09-14  R35 255
    2018-09-14  R48 2722
    2018-09-21  R31 729
    2018-09-21  R32 800
    2018-09-21  R33 634
    2018-09-21  R33 173
    2018-09-21  R33 807
    2018-09-21  R34 173
    2018-09-21  R35 259
    2018-09-21  R48 2768
    2018-09-28  R31 763
    2018-09-28  R32 836
    2018-09-28  R33 829
    2018-09-28  R33 648
    2018-09-28  R33 181
    2018-09-28  R34 177
    2018-09-28  R35 262
    2018-09-28  R48 2866
    2018-10-05  R31 790
    2018-10-05  R32 871
    2018-10-05  R33 191
    2018-10-05  R33 854
    2018-10-05  R33 663
    2018-10-05  R34 180
    2018-10-05  R35 262
    2018-10-05  R48 2956
    2018-10-12  R31 812
    2018-10-12  R32 908
    2018-10-12  R33 877
    2018-10-12  R33 203
    2018-10-12  R33 673
    2018-10-12  R34 177
    2018-10-12  R35 264
    2018-10-12  R48 3037
    2018-10-19  R31 825
    2018-10-19  R32 934
    2018-10-19  R33 218
    2018-10-19  R33 896
    2018-10-19  R33 678
    2018-10-19  R34 177
    2018-10-19  R35 262
    2018-10-19  R48 3095
    2018-10-26  R31 826
    2018-10-26  R32 956
    2018-10-26  R33 919
    2018-10-26  R33 234
    2018-10-26  R33 686
    2018-10-26  R34 180
    2018-10-26  R35 262
    2018-10-26  R48 3143
    2018-11-02  R31 831
    2018-11-02  R32 980
    2018-11-02  R33 253
    2018-11-02  R33 949
    2018-11-02  R33 696
    2018-11-02  R34 182
    2018-11-02  R35 265
    2018-11-02  R48 3208
    2018-11-09  R31 835
    2018-11-09  R32 991
    2018-11-09  R33 272
    2018-11-09  R33 974
    2018-11-09  R33 702
    2018-11-09  R34 181
    2018-11-09  R35 266
    2018-11-09  R48 3247
    2018-11-16  R31 803
    2018-11-16  R32 959
    2018-11-16  R33 251
    2018-11-16  R33 668
    2018-11-16  R33 919
    2018-11-16  R34 174
    2018-11-16  R35 258
    2018-11-16  R48 3113
    2018-11-23  R31 778
    2018-11-23  R32 938
    2018-11-23  R33 654
    2018-11-23  R33 914
    2018-11-23  R33 259
    2018-11-23  R34 171
    2018-11-23  R35 254
    2018-11-23  R48 3054
    2018-11-30  R31 752
    2018-11-30  R32 914
    2018-11-30  R33 642
    2018-11-30  R33 905
    2018-11-30  R33 263
    2018-11-30  R34 168
    2018-11-30  R35 253
    2018-11-30  R48 2991
    2018-12-07  R31 732
    2018-12-07  R32 885
    2018-12-07  R33 627
    2018-12-07  R33 271
    2018-12-07  R33 898
    2018-12-07  R34 160
    2018-12-07  R35 238
    2018-12-07  R48 2914
    2018-12-14  R31 692
    2018-12-14  R32 841
    2018-12-14  R33 860
    2018-12-14  R33 598
    2018-12-14  R33 262
    2018-12-14  R34 153
    2018-12-14  R35 227
    2018-12-14  R48 2773
    2018-12-21  R31 676
    2018-12-21  R32 818
    2018-12-21  R33 584
    2018-12-21  R33 858
    2018-12-21  R33 274
    2018-12-21  R34 150
    2018-12-21  R35 223
    2018-12-21  R48 2725
    2018-12-28  R31 661
    2018-12-28  R32 798
    2018-12-28  R33 878
    2018-12-28  R33 582
    2018-12-28  R33 296
    2018-12-28  R34 147
    2018-12-28  R35 220
    2018-12-28  R48 2705
    2019-01-04  R31 651
    2019-01-04  R32 763
    2019-01-04  R33 865
    2019-01-04  R33 302
    2019-01-04  R33 563
    2019-01-04  R34 132
    2019-01-04  R35 204
    2019-01-04  R48 2614
    2019-01-11  R31 620
    2019-01-11  R32 729
    2019-01-11  R33 303
    2019-01-11  R33 557
    2019-01-11  R33 861
    2019-01-11  R34 127
    2019-01-11  R35 196
    2019-01-11  R48 2533
    2019-01-18  R31 566
    2019-01-18  R32 673
    2019-01-18  R33 823
    2019-01-18  R33 295
    2019-01-18  R33 528
    2019-01-18  R34 121
    2019-01-18  R35 185
    2019-01-18  R48 2370
    2019-01-25  R31 527
    2019-01-25  R32 606
    2019-01-25  R33 771
    2019-01-25  R33 493
    2019-01-25  R33 278
    2019-01-25  R34 114
    2019-01-25  R35 178
    2019-01-25  R48 2197
    2019-02-01  R31 468
    2019-02-01  R32 522
    2019-02-01  R33 451
    2019-02-01  R33 241
    2019-02-01  R33 692
    2019-02-01  R34 105
    2019-02-01  R35 172
    2019-02-01  R48 1960
    2019-02-08  R31 444
    2019-02-08  R32 492
    2019-02-08  R33 696
    2019-02-08  R33 447
    2019-02-08  R33 248
    2019-02-08  R34 95
    2019-02-08  R35 155
    2019-02-08  R48 1882
    2019-02-15  R31 395
    2019-02-15  R32 436
    2019-02-15  R33 224
    2019-02-15  R33 425
    2019-02-15  R33 649
    2019-02-15  R34 87
    2019-02-15  R35 138
    2019-02-15  R48 1705
    2019-02-22  R31 354
    2019-02-22  R32 385
    2019-02-22  R33 199
    2019-02-22  R33 399
    2019-02-22  R33 598
    2019-02-22  R34 79
    2019-02-22  R35 122
    2019-02-22  R48 1539
    2019-03-01  R31 311
    2019-03-01  R32 338
    2019-03-01  R33 377
    2019-03-01  R33 180
    2019-03-01  R33 557
    2019-03-01  R34 73
    2019-03-01  R35 112
    2019-03-01  R48 1390
    2019-03-08  R31 262
    2019-03-08  R32 287
    2019-03-08  R33 344
    2019-03-08  R33 129
    2019-03-08  R33 473
    2019-03-08  R34 66
    2019-03-08  R35 102
    2019-03-08  R48 1190
    2019-03-15  R31 245
    2019-03-15  R32 268
    2019-03-15  R33 336
    2019-03-15  R33 135
    2019-03-15  R33 471
    2019-03-15  R34 62
    2019-03-15  R35 96
    2019-03-15  R48 1143
    2019-03-22  R31 225
    2019-03-22  R32 248
    2019-03-22  R33 329
    2019-03-22  R33 137
    2019-03-22  R33 467
    2019-03-22  R34 62
    2019-03-22  R35 104
    2019-03-22  R48 1107
    2019-03-29  R31 210
    2019-03-29  R32 241
    2019-03-29  R33 347
    2019-03-29  R33 156
    2019-03-29  R33 502
    2019-03-29  R34 64
    2019-03-29  R35 113
    2019-03-29  R48 1130
    2019-04-05  R31 209
    2019-04-05  R32 240
    2019-04-05  R33 166
    2019-04-05  R33 357
    2019-04-05  R33 523
    2019-04-05  R34 64
    2019-04-05  R35 119
    2019-04-05  R48 1155
    2019-04-12  R31 228
    2019-04-12  R32 254
    2019-04-12  R33 187
    2019-04-12  R33 384
    2019-04-12  R33 571
    2019-04-12  R34 66
    2019-04-12  R35 128
    2019-04-12  R48 1247
    2019-04-19  R31 251
    2019-04-19  R32 264
    2019-04-19  R33 413
    2019-04-19  R33 616
    2019-04-19  R33 204
    2019-04-19  R34 70
    2019-04-19  R35 138
    2019-04-19  R48 1339
    2019-04-26  R31 279
    2019-04-26  R32 290
    2019-04-26  R33 442
    2019-04-26  R33 666
    2019-04-26  R33 224
    2019-04-26  R34 75
    2019-04-26  R35 152
    2019-04-26  R48 1462
    2019-05-03  R31 299
    2019-05-03  R32 309
    2019-05-03  R33 699
    2019-05-03  R33 234
    2019-05-03  R33 466
    2019-05-03  R34 78
    2019-05-03  R35 162
    2019-05-03  R48 1547
    2019-05-10  R31 330
    2019-05-10  R32 336
    2019-05-10  R33 731
    2019-05-10  R33 240
    2019-05-10  R33 491
    2019-05-10  R34 82
    2019-05-10  R35 174
    2019-05-10  R48 1653
    2019-05-17  R31 353
    2019-05-17  R32 364
    2019-05-17  R33 762
    2019-05-17  R33 249
    2019-05-17  R33 513
    2019-05-17  R34 89
    2019-05-17  R35 186
    2019-05-17  R48 1753
    2019-05-24  R31 383
    2019-05-24  R32 399
    2019-05-24  R33 793
    2019-05-24  R33 253
    2019-05-24  R33 540
    2019-05-24  R34 93
    2019-05-24  R35 198
    2019-05-24  R48 1867
    2019-05-31  R31 414
    2019-05-31  R32 436
    2019-05-31  R33 821
    2019-05-31  R33 256
    2019-05-31  R33 565
    2019-05-31  R34 101
    2019-05-31  R35 213
    2019-05-31  R48 1986
    2019-06-07  R31 440
    2019-06-07  R32 469
    2019-06-07  R33 586
    2019-06-07  R33 256
    2019-06-07  R33 842
    2019-06-07  R34 111
    2019-06-07  R35 227
    2019-06-07  R48 2088
    2019-06-14  R31 472
    2019-06-14  R32 503
    2019-06-14  R33 264
    2019-06-14  R33 875
    2019-06-14  R33 612
    2019-06-14  R34 118
    2019-06-14  R35 234
    2019-06-14  R48 2203
    2019-06-21  R31 499
    2019-06-21  R32 538
    2019-06-21  R33 630
    2019-06-21  R33 263
    2019-06-21  R33 893
    2019-06-21  R34 127
    2019-06-21  R35 245
    2019-06-21  R48 2301
    2019-06-28  R31 526
    2019-06-28  R32 568
    2019-06-28  R33 259
    2019-06-28  R33 907
    2019-06-28  R33 648
    2019-06-28  R34 134
    2019-06-28  R35 255
    2019-06-28  R48 2390
    2019-07-05  R31 544
    2019-07-05  R32 597
    2019-07-05  R33 257
    2019-07-05  R33 669
    2019-07-05  R33 927
    2019-07-05  R34 140
    2019-07-05  R35 263
    2019-07-05  R48 2471
    2019-07-12  R31 561
    2019-07-12  R32 627
    2019-07-12  R33 246
    2019-07-12  R33 683
    2019-07-12  R33 929
    2019-07-12  R34 147
    2019-07-12  R35 268
    2019-07-12  R48 2533
    2019-07-19  R31 575
    2019-07-19  R32 650
    2019-07-19  R33 921
    2019-07-19  R33 229
    2019-07-19  R33 692
    2019-07-19  R34 151
    2019-07-19  R35 271
    2019-07-19  R48 2569
    2019-07-26  R31 597
    2019-07-26  R32 677
    2019-07-26  R33 934
    2019-07-26  R33 708
    2019-07-26  R33 226
    2019-07-26  R34 156
    2019-07-26  R35 270
    2019-07-26  R48 2634
    2019-08-02  R31 613
    2019-08-02  R32 701
    2019-08-02  R33 941
    2019-08-02  R33 719
    2019-08-02  R33 221
    2019-08-02  R34 161
    2019-08-02  R35 272
    2019-08-02  R48 2689
    2019-08-09  R31 634
    2019-08-09  R32 729
    2019-08-09  R33 939
    2019-08-09  R33 725
    2022-12-30  R32 839
    2022-12-30  R33 770
    2022-12-30  R33 270
    2022-12-30  R33 1040
    2022-12-30  R34 157
    2022-12-30  R35 165
    2022-12-30  R48 2891
    2023-01-06  R31 700
    2023-01-06  R32 823
    2023-01-06  R33 1067
    2023-01-06  R33 772
    2023-01-06  R33 295
    2023-01-06  R34 153
    2023-01-06  R35 160
    2023-01-06  R48 2902
    2023-01-13  R31 662
    2023-01-13  R32 785
    2023-01-13  R33 762
    2023-01-13  R33 1069
    2023-01-13  R33 307
    2023-01-13  R34 147
    2023-01-13  R35 157
    2023-01-13  R48 2820
    2023-01-20  R31 622
    2023-01-20  R32 754
    2023-01-20  R33 310
    2023-03-24  R31 343
    2023-03-24  R32 437
    2023-05-05  R31 422
    2023-05-05  R32 497
    2023-05-05  R33 1002
    2023-05-05  R33 287
    2023-05-05  R33 715
    2023-05-05  R34 104
    2023-05-05  R35 114
    2023-05-05  R48 2141
    2023-05-12  R31 458
    2023-05-12  R32 520
    2023-05-12  R33 1023
    2023-05-12  R33 290
    2023-05-12  R33 734
    2023-05-12  R34 112
    2023-05-12  R35 127
    2023-05-12  R48 2240

我想计算一个尾随5年平均值分组的价值观'系列'和每个时期的日期(即平均值将计算每个系列/时期的记录)。
对于给定的期间和系列记录,平均值计算中使用的值应代表最近五年的前一个值中的每一个值,其日期与锚记录的日期接近。
作为一个简单的例子,对于日期为2023年5月12日的系列R48,使用以下样本数据返回的5年平均值应为1889:

period  series  value
2018-05-04  R48 1432
2018-05-11  R48 1538
2018-05-18  R48 1629
2018-05-25  R48 1725
2019-05-03  R48 1547
2019-05-10  R48 1653
2019-05-17  R48 1753
2019-05-24  R48 1867
2019-05-31  R48 1986
2020-05-01  R48 2319
2020-05-08  R48 2422
2020-05-15  R48 2503
2020-05-22  R48 2612
2020-05-29  R48 2714
2021-05-07  R48 2029
2021-05-14  R48 2100
2021-05-21  R48 2215
2021-05-28  R48 2313
2022-05-06  R48 1643
2022-05-13  R48 1732
2022-05-20  R48 1819
2022-05-27  R48 1901
2023-05-05  R48 2141
2023-05-12  R48 2240

目前,这段代码可以工作(忽略数据少于5 y的日期的复杂性等)。不过,我更喜欢用更直接的方法来解决这个问题。感谢所有输入。

for s in df.series.unique():
    a = df[(df.series==s)]

    for i in a[df.period.dt.year >= 2013].period:
        d = a[(a.period > (i - pd.DateOffset(months=61))) & (a.period.dt.year < i.year)]
        d['d'] = abs(a.period.dt.dayofyear - int(i.strftime('%j')))
        df.loc[(df.period==i) & (df.series==s),'5yavg'] = d.loc[d.groupby(d.period.dt.year).d.idxmin()].value.mean()
g6baxovj

g6baxovj1#

下面的代码按“系列”分组,然后计算滚动跟踪5年平均值。但是,代码比您自己的代码稍微多一些。我得到了一个稍微不同的2023-05-12值,因为我发现最近的是基于日期而不是一年中的一天,这导致了2020年的差异,因为2月份有一个额外的一天,所以2月份之后的所有日子都是如此。在2020年将大1天(所以08-05-2020比15-05-2020更接近12-05- 2023)。如果这是你想要的,很容易改变代码。

df = pd.read_clipboard(sep=r'\s{1,}', engine="python")
df["period"] = pd.to_datetime(df["period"])

# create list for grouping series
series_list = []

# loop through each series
for i, j in df.groupby("series"):
    # create 2 columns for dates, without year and year only
    j["no_year"] = pd.to_datetime(
        j.period.dt.strftime("%d-%m"), format="%d-%m")
    j["year"] = j.period.dt.year

    # set years as columns
    k = j.set_index(["no_year", "year"]).value.unstack()
    if len(j) > 2:
        # fill na values with nearest date value
        k = k.interpolate(method="nearest").ffill().bfill()
    else:
        # can't interpolate if <= 2 rows
        k = k.ffill().bfill()

    # calculate rolling mean of 5 years (not including current year)
    l = k.T.rolling(5, min_periods=1, closed="left").mean().T.stack()
    l.name = "mean"
    # merge means to j
    m = pd.merge(j, l, left_on=["no_year", "year"], right_index=True, how="left")
    m = m[list(df.columns) + ["mean"]]
    
    series_list += [m]

# concatenate series groups to one dataframe
df1 = pd.concat(series_list).sort_index()

输出:

df1
# Out[]: 
#        period series  value         mean
# 0  2018-05-04    R48   1432          NaN
# 1  2018-05-11    R48   1538          NaN
# 2  2018-05-18    R48   1629          NaN
# 3  2018-05-25    R48   1725          NaN
# 4  2019-05-03    R48   1547  1432.000000
# 5  2019-05-10    R48   1653  1538.000000
# 6  2019-05-17    R48   1753  1629.000000
# 7  2019-05-24    R48   1867  1725.000000
# 8  2019-05-31    R48   1986  1725.000000
# 9  2020-05-01    R48   2319  1489.500000
# 10 2020-05-08    R48   2422  1595.500000
# 11 2020-05-15    R48   2503  1691.000000
# 12 2020-05-22    R48   2612  1796.000000
# 13 2020-05-29    R48   2714  1855.500000
# 14 2021-05-07    R48   2029  1835.666667
# 15 2021-05-14    R48   2100  1931.333333
# 16 2021-05-21    R48   2215  2036.000000
# 17 2021-05-28    R48   2313  2141.666667
# 18 2022-05-06    R48   1643  1857.500000
# 19 2022-05-13    R48   1732  1948.500000
# 20 2022-05-20    R48   1819  2052.250000
# 21 2022-05-27    R48   1901  2154.750000
# 22 2023-05-05    R48   2141  1814.600000
# 23 2023-05-12    R48   2240  1905.200000

相关问题