@@ -3340,6 +3340,56 @@ def test_drop_duplicates_NA(self):
3340
3340
expected = df .ix [[1 , 3 , 6 , 7 ]]
3341
3341
assert_frame_equal (result , expected )
3342
3342
3343
+ def test_drop_duplicates_inplace (self ):
3344
+ orig = DataFrame ({'A' : ['foo' , 'bar' , 'foo' , 'bar' ,
3345
+ 'foo' , 'bar' , 'bar' , 'foo' ],
3346
+ 'B' : ['one' , 'one' , 'two' , 'two' ,
3347
+ 'two' , 'two' , 'one' , 'two' ],
3348
+ 'C' : [1 , 1 , 2 , 2 , 2 , 2 , 1 , 2 ],
3349
+ 'D' : range (8 )})
3350
+
3351
+ # single column
3352
+ df = orig .copy ()
3353
+ df .drop_duplicates ('A' , inplace = True )
3354
+ expected = orig [:2 ]
3355
+ result = df
3356
+ assert_frame_equal (result , expected )
3357
+
3358
+ df = orig .copy ()
3359
+ df .drop_duplicates ('A' , take_last = True , inplace = True )
3360
+ expected = orig .ix [[6 , 7 ]]
3361
+ result = df
3362
+ assert_frame_equal (result , expected )
3363
+
3364
+ # multi column
3365
+ df = orig .copy ()
3366
+ df .drop_duplicates (['A' , 'B' ], inplace = True )
3367
+ expected = orig .ix [[0 , 1 , 2 , 3 ]]
3368
+ result = df
3369
+ assert_frame_equal (result , expected )
3370
+
3371
+ df = orig .copy ()
3372
+ df .drop_duplicates (['A' , 'B' ], take_last = True , inplace = True )
3373
+ expected = orig .ix [[0 , 5 , 6 , 7 ]]
3374
+ result = df
3375
+ assert_frame_equal (result , expected )
3376
+
3377
+ # consider everything
3378
+ orig2 = orig .ix [:, ['A' , 'B' , 'C' ]].copy ()
3379
+
3380
+ df2 = orig2 .copy ()
3381
+ df2 .drop_duplicates (inplace = True )
3382
+ # in this case only
3383
+ expected = orig2 .drop_duplicates (['A' , 'B' ])
3384
+ result = df2
3385
+ assert_frame_equal (result , expected )
3386
+
3387
+ df2 = orig2 .copy ()
3388
+ df2 .drop_duplicates (take_last = True , inplace = True )
3389
+ expected = orig2 .drop_duplicates (['A' , 'B' ], take_last = True )
3390
+ result = df2
3391
+ assert_frame_equal (result , expected )
3392
+
3343
3393
def test_drop_col_still_multiindex (self ):
3344
3394
arrays = [[ 'a' , 'b' , 'c' , 'top' ],
3345
3395
[ '' , '' , '' , 'OD' ],
0 commit comments