@@ -349,18 +349,19 @@ def weighted_quantile(series, weights, q):
349
349
tm .assert_series_equal (result , expected )
350
350
351
351
352
- def test_resample_groupby_with_label ():
352
+ def test_resample_groupby_with_label (unit ):
353
353
# GH 13235
354
- index = date_range ("2000-01-01" , freq = "2D" , periods = 5 )
354
+ index = date_range ("2000-01-01" , freq = "2D" , periods = 5 , unit = unit )
355
355
df = DataFrame (index = index , data = {"col0" : [0 , 0 , 1 , 1 , 2 ], "col1" : [1 , 1 , 1 , 1 , 1 ]})
356
356
msg = "DataFrameGroupBy.resample operated on the grouping columns"
357
357
with tm .assert_produces_warning (FutureWarning , match = msg ):
358
358
result = df .groupby ("col0" ).resample ("1W" , label = "left" ).sum ()
359
359
360
360
mi = [
361
361
np .array ([0 , 0 , 1 , 2 ], dtype = np .int64 ),
362
- pd .to_datetime (
363
- np .array (["1999-12-26" , "2000-01-02" , "2000-01-02" , "2000-01-02" ])
362
+ np .array (
363
+ ["1999-12-26" , "2000-01-02" , "2000-01-02" , "2000-01-02" ],
364
+ dtype = f"M8[{ unit } ]" ,
364
365
),
365
366
]
366
367
mindex = pd .MultiIndex .from_arrays (mi , names = ["col0" , None ])
@@ -505,7 +506,9 @@ def test_resample_groupby_agg_object_dtype_all_nan(consolidate):
505
506
idx = pd .MultiIndex .from_arrays (
506
507
[
507
508
["A" ] * 3 + ["B" ] * 3 ,
508
- pd .to_datetime (["2020-01-05" , "2020-01-12" , "2020-01-19" ] * 2 ),
509
+ pd .to_datetime (["2020-01-05" , "2020-01-12" , "2020-01-19" ] * 2 ).as_unit (
510
+ "ns"
511
+ ),
509
512
],
510
513
names = ["key" , "date" ],
511
514
)
@@ -530,19 +533,15 @@ def test_groupby_resample_with_list_of_keys():
530
533
}
531
534
)
532
535
result = df .groupby ("group" ).resample ("2D" , on = "date" )[["val" ]].mean ()
536
+
537
+ mi_exp = pd .MultiIndex .from_arrays (
538
+ [[0 , 0 , 1 , 1 ], df ["date" ]._values [::2 ]], names = ["group" , "date" ]
539
+ )
533
540
expected = DataFrame (
534
541
data = {
535
542
"val" : [4.0 , 3.5 , 6.5 , 3.0 ],
536
543
},
537
- index = Index (
538
- data = [
539
- (0 , Timestamp ("2016-01-01" )),
540
- (0 , Timestamp ("2016-01-03" )),
541
- (1 , Timestamp ("2016-01-05" )),
542
- (1 , Timestamp ("2016-01-07" )),
543
- ],
544
- name = ("group" , "date" ),
545
- ),
544
+ index = mi_exp ,
546
545
)
547
546
tm .assert_frame_equal (result , expected )
548
547
@@ -605,17 +604,17 @@ def test_groupby_resample_size_all_index_same():
605
604
msg = "DataFrameGroupBy.resample operated on the grouping columns"
606
605
with tm .assert_produces_warning (FutureWarning , match = msg ):
607
606
result = df .groupby ("A" ).resample ("D" ).size ()
607
+
608
+ mi_exp = pd .MultiIndex .from_arrays (
609
+ [
610
+ [1 , 1 , 2 , 2 ],
611
+ pd .DatetimeIndex (["2000-12-31" , "2001-01-01" ] * 2 , dtype = "M8[ns]" ),
612
+ ],
613
+ names = ["A" , None ],
614
+ )
608
615
expected = Series (
609
616
3 ,
610
- index = pd .MultiIndex .from_tuples (
611
- [
612
- (1 , Timestamp ("2000-12-31" )),
613
- (1 , Timestamp ("2001-01-01" )),
614
- (2 , Timestamp ("2000-12-31" )),
615
- (2 , Timestamp ("2001-01-01" )),
616
- ],
617
- names = ["A" , None ],
618
- ),
617
+ index = mi_exp ,
619
618
)
620
619
tm .assert_series_equal (result , expected )
621
620
@@ -627,25 +626,18 @@ def test_groupby_resample_on_index_with_list_of_keys():
627
626
"group" : [0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 ],
628
627
"val" : [3 , 1 , 4 , 1 , 5 , 9 , 2 , 6 ],
629
628
},
630
- index = Series (
631
- date_range (start = "2016-01-01" , periods = 8 ),
632
- name = "date" ,
633
- ),
629
+ index = date_range (start = "2016-01-01" , periods = 8 , name = "date" ),
634
630
)
635
631
result = df .groupby ("group" ).resample ("2D" )[["val" ]].mean ()
632
+
633
+ mi_exp = pd .MultiIndex .from_arrays (
634
+ [[0 , 0 , 1 , 1 ], df .index [::2 ]], names = ["group" , "date" ]
635
+ )
636
636
expected = DataFrame (
637
637
data = {
638
638
"val" : [2.0 , 2.5 , 7.0 , 4.0 ],
639
639
},
640
- index = Index (
641
- data = [
642
- (0 , Timestamp ("2016-01-01" )),
643
- (0 , Timestamp ("2016-01-03" )),
644
- (1 , Timestamp ("2016-01-05" )),
645
- (1 , Timestamp ("2016-01-07" )),
646
- ],
647
- name = ("group" , "date" ),
648
- ),
640
+ index = mi_exp ,
649
641
)
650
642
tm .assert_frame_equal (result , expected )
651
643
@@ -659,26 +651,19 @@ def test_groupby_resample_on_index_with_list_of_keys_multi_columns():
659
651
"second_val" : [2 , 7 , 1 , 8 , 2 , 8 , 1 , 8 ],
660
652
"third_val" : [1 , 4 , 1 , 4 , 2 , 1 , 3 , 5 ],
661
653
},
662
- index = Series (
663
- date_range (start = "2016-01-01" , periods = 8 ),
664
- name = "date" ,
665
- ),
654
+ index = date_range (start = "2016-01-01" , periods = 8 , name = "date" ),
666
655
)
667
656
result = df .groupby ("group" ).resample ("2D" )[["first_val" , "second_val" ]].mean ()
657
+
658
+ mi_exp = pd .MultiIndex .from_arrays (
659
+ [[0 , 0 , 1 , 1 ], df .index [::2 ]], names = ["group" , "date" ]
660
+ )
668
661
expected = DataFrame (
669
662
data = {
670
663
"first_val" : [2.0 , 2.5 , 7.0 , 4.0 ],
671
664
"second_val" : [4.5 , 4.5 , 5.0 , 4.5 ],
672
665
},
673
- index = Index (
674
- data = [
675
- (0 , Timestamp ("2016-01-01" )),
676
- (0 , Timestamp ("2016-01-03" )),
677
- (1 , Timestamp ("2016-01-05" )),
678
- (1 , Timestamp ("2016-01-07" )),
679
- ],
680
- name = ("group" , "date" ),
681
- ),
666
+ index = mi_exp ,
682
667
)
683
668
tm .assert_frame_equal (result , expected )
684
669
0 commit comments