@@ -3430,44 +3430,54 @@ def test_convert_objects(self):
3430
3430
3431
3431
s = Series ([1. , 2 , 3 ],index = ['a' ,'b' ,'c' ])
3432
3432
result = s .convert_objects (convert_dates = False ,convert_numeric = True )
3433
- assert_series_equal (s , result )
3433
+ assert_series_equal (result , s )
3434
3434
3435
3435
# force numeric conversion
3436
3436
r = s .copy ().astype ('O' )
3437
3437
r ['a' ] = '1'
3438
3438
result = r .convert_objects (convert_dates = False ,convert_numeric = True )
3439
- assert_series_equal (s , result )
3439
+ assert_series_equal (result , s )
3440
3440
3441
3441
r = s .copy ().astype ('O' )
3442
3442
r ['a' ] = '1.'
3443
3443
result = r .convert_objects (convert_dates = False ,convert_numeric = True )
3444
- assert_series_equal (s , result )
3444
+ assert_series_equal (result , s )
3445
3445
3446
3446
r = s .copy ().astype ('O' )
3447
3447
r ['a' ] = 'garbled'
3448
3448
expected = s .copy ()
3449
3449
expected ['a' ] = np .nan
3450
3450
result = r .convert_objects (convert_dates = False ,convert_numeric = True )
3451
- assert_series_equal (expected ,result )
3451
+ assert_series_equal (result , expected )
3452
+
3453
+ # GH 4119, not converting a mixed type (e.g.floats and object)
3454
+ s = Series ([1 , 'na' , 3 ,4 ])
3455
+ result = s .convert_objects (convert_numeric = True )
3456
+ expected = Series ([1 ,np .nan ,3 ,4 ])
3457
+ assert_series_equal (result , expected )
3458
+
3459
+ s = Series ([1 , '' , 3 ,4 ])
3460
+ result = s .convert_objects (convert_numeric = True )
3461
+ expected = Series ([1 ,np .nan ,3 ,4 ])
3462
+ assert_series_equal (result , expected )
3452
3463
3453
3464
# dates
3454
3465
s = Series ([datetime (2001 ,1 ,1 ,0 ,0 ), datetime (2001 ,1 ,2 ,0 ,0 ), datetime (2001 ,1 ,3 ,0 ,0 ) ])
3455
3466
s2 = Series ([datetime (2001 ,1 ,1 ,0 ,0 ), datetime (2001 ,1 ,2 ,0 ,0 ), datetime (2001 ,1 ,3 ,0 ,0 ), 'foo' , 1.0 , 1 , Timestamp ('20010104' ), '20010105' ],dtype = 'O' )
3456
3467
3457
3468
result = s .convert_objects (convert_dates = True ,convert_numeric = False )
3458
3469
expected = Series ([Timestamp ('20010101' ),Timestamp ('20010102' ),Timestamp ('20010103' )],dtype = 'M8[ns]' )
3459
- assert_series_equal (expected , result )
3470
+ assert_series_equal (result , expected )
3460
3471
3461
3472
result = s .convert_objects (convert_dates = 'coerce' ,convert_numeric = False )
3462
- assert_series_equal (expected ,result )
3463
3473
result = s .convert_objects (convert_dates = 'coerce' ,convert_numeric = True )
3464
- assert_series_equal (expected , result )
3474
+ assert_series_equal (result , expected )
3465
3475
3466
3476
expected = Series ([Timestamp ('20010101' ),Timestamp ('20010102' ),Timestamp ('20010103' ),lib .NaT ,lib .NaT ,lib .NaT ,Timestamp ('20010104' ),Timestamp ('20010105' )],dtype = 'M8[ns]' )
3467
3477
result = s2 .convert_objects (convert_dates = 'coerce' ,convert_numeric = False )
3468
- assert_series_equal (expected , result )
3478
+ assert_series_equal (result , expected )
3469
3479
result = s2 .convert_objects (convert_dates = 'coerce' ,convert_numeric = True )
3470
- assert_series_equal (expected , result )
3480
+ assert_series_equal (result , expected )
3471
3481
3472
3482
# preserver all-nans (if convert_dates='coerce')
3473
3483
s = Series (['foo' ,'bar' ,1 ,1.0 ],dtype = 'O' )
0 commit comments