@@ -873,52 +873,95 @@ def test_unique(self):
873
873
expected = np .array ([1 , 2 , 3 , None ], dtype = object )
874
874
tm .assert_numpy_array_equal (result , expected )
875
875
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 ])
922
965
923
966
def test_clip (self ):
924
967
val = self .ts .median ()
0 commit comments