@@ -873,52 +873,95 @@ def test_unique(self):
873873 expected = np .array ([1 , 2 , 3 , None ], dtype = object )
874874 tm .assert_numpy_array_equal (result , expected )
875875
876- def test_drop_duplicates (self ):
877- # check both int and object
878- for s in [Series ([1 , 2 , 3 , 3 ]), Series (['1' , '2' , '3' , '3' ])]:
879- expected = Series ([False , False , False , True ])
880- assert_series_equal (s .duplicated (), expected )
881- assert_series_equal (s .drop_duplicates (), s [~ expected ])
882- sc = s .copy ()
883- sc .drop_duplicates (inplace = True )
884- assert_series_equal (sc , s [~ expected ])
885-
886- expected = Series ([False , False , True , False ])
887- assert_series_equal (s .duplicated (keep = 'last' ), expected )
888- assert_series_equal (s .drop_duplicates (keep = 'last' ), s [~ expected ])
889- sc = s .copy ()
890- sc .drop_duplicates (keep = 'last' , inplace = True )
891- assert_series_equal (sc , s [~ expected ])
892-
893- expected = Series ([False , False , True , True ])
894- assert_series_equal (s .duplicated (keep = False ), expected )
895- assert_series_equal (s .drop_duplicates (keep = False ), s [~ expected ])
896- sc = s .copy ()
897- sc .drop_duplicates (keep = False , inplace = True )
898- assert_series_equal (sc , s [~ expected ])
899-
900- for s in [Series ([1 , 2 , 3 , 5 , 3 , 2 , 4 ]),
901- Series (['1' , '2' , '3' , '5' , '3' , '2' , '4' ])]:
902- expected = Series ([False , False , False , False , True , True , False ])
903- assert_series_equal (s .duplicated (), expected )
904- assert_series_equal (s .drop_duplicates (), s [~ expected ])
905- sc = s .copy ()
906- sc .drop_duplicates (inplace = True )
907- assert_series_equal (sc , s [~ expected ])
908-
909- expected = Series ([False , True , True , False , False , False , False ])
910- assert_series_equal (s .duplicated (keep = 'last' ), expected )
911- assert_series_equal (s .drop_duplicates (keep = 'last' ), s [~ expected ])
912- sc = s .copy ()
913- sc .drop_duplicates (keep = 'last' , inplace = True )
914- assert_series_equal (sc , s [~ expected ])
915-
916- expected = Series ([False , True , True , False , True , True , False ])
917- assert_series_equal (s .duplicated (keep = False ), expected )
918- assert_series_equal (s .drop_duplicates (keep = False ), s [~ expected ])
919- sc = s .copy ()
920- sc .drop_duplicates (keep = False , inplace = True )
921- assert_series_equal (sc , s [~ expected ])
876+ @pytest .mark .parametrize (
877+ "tc1, tc2" ,
878+ [
879+ (
880+ Series ([1 , 2 , 3 , 3 ], dtype = np .dtype ('int_' )),
881+ Series ([1 , 2 , 3 , 5 , 3 , 2 , 4 ], dtype = np .dtype ('int_' ))
882+ ),
883+ (
884+ Series ([1 , 2 , 3 , 3 ], dtype = np .dtype ('uint' )),
885+ Series ([1 , 2 , 3 , 5 , 3 , 2 , 4 ], dtype = np .dtype ('uint' ))
886+ ),
887+ (
888+ Series ([1 , 2 , 3 , 3 ], dtype = np .dtype ('float_' )),
889+ Series ([1 , 2 , 3 , 5 , 3 , 2 , 4 ], dtype = np .dtype ('float_' ))
890+ ),
891+ (
892+ Series ([1 , 2 , 3 , 3 ], dtype = np .dtype ('unicode_' )),
893+ Series ([1 , 2 , 3 , 5 , 3 , 2 , 4 ], dtype = np .dtype ('unicode_' ))
894+ )
895+ ]
896+ )
897+ def test_drop_duplicates_non_bool (self , tc1 , tc2 ):
898+ # Test case 1
899+ expected = Series ([False , False , False , True ])
900+ assert_series_equal (tc1 .duplicated (), expected )
901+ assert_series_equal (tc1 .drop_duplicates (), tc1 [~ expected ])
902+ sc = tc1 .copy ()
903+ sc .drop_duplicates (inplace = True )
904+ assert_series_equal (sc , tc1 [~ expected ])
905+
906+ expected = Series ([False , False , True , False ])
907+ assert_series_equal (tc1 .duplicated (keep = 'last' ), expected )
908+ assert_series_equal (tc1 .drop_duplicates (keep = 'last' ), tc1 [~ expected ])
909+ sc = tc1 .copy ()
910+ sc .drop_duplicates (keep = 'last' , inplace = True )
911+ assert_series_equal (sc , tc1 [~ expected ])
912+
913+ expected = Series ([False , False , True , True ])
914+ assert_series_equal (tc1 .duplicated (keep = False ), expected )
915+ assert_series_equal (tc1 .drop_duplicates (keep = False ), tc1 [~ expected ])
916+ sc = tc1 .copy ()
917+ sc .drop_duplicates (keep = False , inplace = True )
918+ assert_series_equal (sc , tc1 [~ expected ])
919+
920+ # Test case 2
921+ expected = Series ([False , False , False , False , True , True , False ])
922+ assert_series_equal (tc2 .duplicated (), expected )
923+ assert_series_equal (tc2 .drop_duplicates (), tc2 [~ expected ])
924+ sc = tc2 .copy ()
925+ sc .drop_duplicates (inplace = True )
926+ assert_series_equal (sc , tc2 [~ expected ])
927+
928+ expected = Series ([False , True , True , False , False , False , False ])
929+ assert_series_equal (tc2 .duplicated (keep = 'last' ), expected )
930+ assert_series_equal (tc2 .drop_duplicates (keep = 'last' ), tc2 [~ expected ])
931+ sc = tc2 .copy ()
932+ sc .drop_duplicates (keep = 'last' , inplace = True )
933+ assert_series_equal (sc , tc2 [~ expected ])
934+
935+ expected = Series ([False , True , True , False , True , True , False ])
936+ assert_series_equal (tc2 .duplicated (keep = False ), expected )
937+ assert_series_equal (tc2 .drop_duplicates (keep = False ), tc2 [~ expected ])
938+ sc = tc2 .copy ()
939+ sc .drop_duplicates (keep = False , inplace = True )
940+ assert_series_equal (sc , tc2 [~ expected ])
941+
942+ def test_drop_duplicates_bool (self ):
943+ tc = Series ([True , False , True , False ])
944+
945+ expected = Series ([False , False , True , True ])
946+ assert_series_equal (tc .duplicated (), expected )
947+ assert_series_equal (tc .drop_duplicates (), tc [~ expected ])
948+ sc = tc .copy ()
949+ sc .drop_duplicates (inplace = True )
950+ assert_series_equal (sc , tc [~ expected ])
951+
952+ expected = Series ([True , True , False , False ])
953+ assert_series_equal (tc .duplicated (keep = 'last' ), expected )
954+ assert_series_equal (tc .drop_duplicates (keep = 'last' ), tc [~ expected ])
955+ sc = tc .copy ()
956+ sc .drop_duplicates (keep = 'last' , inplace = True )
957+ assert_series_equal (sc , tc [~ expected ])
958+
959+ expected = Series ([True , True , True , True ])
960+ assert_series_equal (tc .duplicated (keep = False ), expected )
961+ assert_series_equal (tc .drop_duplicates (keep = False ), tc [~ expected ])
962+ sc = tc .copy ()
963+ sc .drop_duplicates (keep = False , inplace = True )
964+ assert_series_equal (sc , tc [~ expected ])
922965
923966 def test_clip (self ):
924967 val = self .ts .median ()
0 commit comments