@@ -570,108 +570,6 @@ def test_factorize(self, index_or_series_obj, sort):
570
570
tm .assert_numpy_array_equal (result_codes , expected_codes )
571
571
tm .assert_index_equal (result_uniques , expected_uniques )
572
572
573
- def test_duplicated_drop_duplicates_index (self ):
574
- # GH 4060
575
- for original in self .objs :
576
- if isinstance (original , Index ):
577
-
578
- # special case
579
- if original .is_boolean ():
580
- result = original .drop_duplicates ()
581
- expected = Index ([False , True ], name = "a" )
582
- tm .assert_index_equal (result , expected )
583
- continue
584
-
585
- # original doesn't have duplicates
586
- expected = np .array ([False ] * len (original ), dtype = bool )
587
- duplicated = original .duplicated ()
588
- tm .assert_numpy_array_equal (duplicated , expected )
589
- assert duplicated .dtype == bool
590
- result = original .drop_duplicates ()
591
- tm .assert_index_equal (result , original )
592
- assert result is not original
593
-
594
- # has_duplicates
595
- assert not original .has_duplicates
596
-
597
- # create repeated values, 3rd and 5th values are duplicated
598
- idx = original [list (range (len (original ))) + [5 , 3 ]]
599
- expected = np .array ([False ] * len (original ) + [True , True ], dtype = bool )
600
- duplicated = idx .duplicated ()
601
- tm .assert_numpy_array_equal (duplicated , expected )
602
- assert duplicated .dtype == bool
603
- tm .assert_index_equal (idx .drop_duplicates (), original )
604
-
605
- base = [False ] * len (idx )
606
- base [3 ] = True
607
- base [5 ] = True
608
- expected = np .array (base )
609
-
610
- duplicated = idx .duplicated (keep = "last" )
611
- tm .assert_numpy_array_equal (duplicated , expected )
612
- assert duplicated .dtype == bool
613
- result = idx .drop_duplicates (keep = "last" )
614
- tm .assert_index_equal (result , idx [~ expected ])
615
-
616
- base = [False ] * len (original ) + [True , True ]
617
- base [3 ] = True
618
- base [5 ] = True
619
- expected = np .array (base )
620
-
621
- duplicated = idx .duplicated (keep = False )
622
- tm .assert_numpy_array_equal (duplicated , expected )
623
- assert duplicated .dtype == bool
624
- result = idx .drop_duplicates (keep = False )
625
- tm .assert_index_equal (result , idx [~ expected ])
626
-
627
- with pytest .raises (
628
- TypeError ,
629
- match = r"drop_duplicates\(\) got an unexpected keyword argument" ,
630
- ):
631
- idx .drop_duplicates (inplace = True )
632
-
633
- else :
634
- expected = Series (
635
- [False ] * len (original ), index = original .index , name = "a"
636
- )
637
- tm .assert_series_equal (original .duplicated (), expected )
638
- result = original .drop_duplicates ()
639
- tm .assert_series_equal (result , original )
640
- assert result is not original
641
-
642
- idx = original .index [list (range (len (original ))) + [5 , 3 ]]
643
- values = original ._values [list (range (len (original ))) + [5 , 3 ]]
644
- s = Series (values , index = idx , name = "a" )
645
-
646
- expected = Series (
647
- [False ] * len (original ) + [True , True ], index = idx , name = "a"
648
- )
649
- tm .assert_series_equal (s .duplicated (), expected )
650
- tm .assert_series_equal (s .drop_duplicates (), original )
651
-
652
- base = [False ] * len (idx )
653
- base [3 ] = True
654
- base [5 ] = True
655
- expected = Series (base , index = idx , name = "a" )
656
-
657
- tm .assert_series_equal (s .duplicated (keep = "last" ), expected )
658
- tm .assert_series_equal (
659
- s .drop_duplicates (keep = "last" ), s [~ np .array (base )]
660
- )
661
-
662
- base = [False ] * len (original ) + [True , True ]
663
- base [3 ] = True
664
- base [5 ] = True
665
- expected = Series (base , index = idx , name = "a" )
666
-
667
- tm .assert_series_equal (s .duplicated (keep = False ), expected )
668
- tm .assert_series_equal (
669
- s .drop_duplicates (keep = False ), s [~ np .array (base )]
670
- )
671
-
672
- s .drop_duplicates (inplace = True )
673
- tm .assert_series_equal (s , original )
674
-
675
573
def test_drop_duplicates_series_vs_dataframe (self ):
676
574
# GH 14192
677
575
df = pd .DataFrame (
0 commit comments