@@ -1376,21 +1376,42 @@ def gen_expected(df,mask):
1376
1376
expected = gen_expected (df ,mask )
1377
1377
assert_frame_equal (result ,expected )
1378
1378
1379
- def test_astype_assignment_with_iloc (self ):
1379
+ def test_astype_assignment (self ):
1380
1380
1381
- # GH4312
1381
+ # GH4312 (iloc)
1382
1382
df_orig = DataFrame ([['1' ,'2' ,'3' ,'.4' ,5 ,6. ,'foo' ]],columns = list ('ABCDEFG' ))
1383
1383
1384
1384
df = df_orig .copy ()
1385
- df .iloc [:,0 :3 ] = df .iloc [:,0 :3 ].astype (int )
1386
- result = df .get_dtype_counts ().sort_index ()
1387
- expected = Series ({ 'int64' : 4 , 'float64' : 1 , 'object' : 2 }).sort_index ()
1388
- assert_series_equal (result ,expected )
1385
+ df .iloc [:,0 :2 ] = df .iloc [:,0 :2 ].astype (int )
1386
+ expected = DataFrame ([[1 ,2 ,'3' ,'.4' ,5 ,6. ,'foo' ]],columns = list ('ABCDEFG' ))
1387
+ assert_frame_equal (df ,expected )
1389
1388
1390
1389
df = df_orig .copy ()
1391
- df .iloc [:,0 :3 ] = df .iloc [:,0 :3 ].convert_objects (convert_numeric = True )
1392
- result = df .get_dtype_counts ().sort_index ()
1393
- expected = Series ({ 'int64' : 4 , 'float64' : 1 , 'object' : 2 }).sort_index ()
1390
+ df .iloc [:,0 :2 ] = df .iloc [:,0 :2 ].convert_objects (convert_numeric = True )
1391
+ expected = DataFrame ([[1 ,2 ,'3' ,'.4' ,5 ,6. ,'foo' ]],columns = list ('ABCDEFG' ))
1392
+ assert_frame_equal (df ,expected )
1393
+
1394
+ # GH5702 (loc)
1395
+ df = df_orig .copy ()
1396
+ df .loc [:,'A' ] = df .loc [:,'A' ].astype (int )
1397
+ expected = DataFrame ([[1 ,'2' ,'3' ,'.4' ,5 ,6. ,'foo' ]],columns = list ('ABCDEFG' ))
1398
+ assert_frame_equal (df ,expected )
1399
+
1400
+ df = df_orig .copy ()
1401
+ df .loc [:,['B' ,'C' ]] = df .loc [:,['B' ,'C' ]].astype (int )
1402
+ expected = DataFrame ([['1' ,2 ,3 ,'.4' ,5 ,6. ,'foo' ]],columns = list ('ABCDEFG' ))
1403
+ assert_frame_equal (df ,expected )
1404
+
1405
+ # full replacements / no nans
1406
+ df = DataFrame ({'A' : [1. , 2. , 3. , 4. ]})
1407
+ df .iloc [:, 0 ] = df ['A' ].astype (np .int64 )
1408
+ expected = DataFrame ({'A' : [1 , 2 , 3 , 4 ]})
1409
+ assert_frame_equal (df ,expected )
1410
+
1411
+ df = DataFrame ({'A' : [1. , 2. , 3. , 4. ]})
1412
+ df .loc [:, 'A' ] = df ['A' ].astype (np .int64 )
1413
+ expected = DataFrame ({'A' : [1 , 2 , 3 , 4 ]})
1414
+ assert_frame_equal (df ,expected )
1394
1415
1395
1416
def test_astype_assignment_with_dups (self ):
1396
1417
@@ -1496,22 +1517,22 @@ def f():
1496
1517
assert_frame_equal (df ,expected )
1497
1518
1498
1519
# mixed dtype frame, overwrite
1499
- expected = DataFrame (dict ({ 'A' : [0 ,2 ,4 ], 'B' : Series ([0. , 2. , 4. ]) }))
1520
+ expected = DataFrame (dict ({ 'A' : [0 ,2 ,4 ], 'B' : Series ([0 , 2 , 4 ]) }))
1500
1521
df = df_orig .copy ()
1501
1522
df ['B' ] = df ['B' ].astype (np .float64 )
1502
1523
df .ix [:,'B' ] = df .ix [:,'A' ]
1503
1524
assert_frame_equal (df ,expected )
1504
1525
1505
1526
# single dtype frame, partial setting
1506
1527
expected = df_orig .copy ()
1507
- expected ['C' ] = df ['A' ]. astype ( np . float64 )
1528
+ expected ['C' ] = df ['A' ]
1508
1529
df = df_orig .copy ()
1509
1530
df .ix [:,'C' ] = df .ix [:,'A' ]
1510
1531
assert_frame_equal (df ,expected )
1511
1532
1512
1533
# mixed frame, partial setting
1513
1534
expected = df_orig .copy ()
1514
- expected ['C' ] = df ['A' ]. astype ( np . float64 )
1535
+ expected ['C' ] = df ['A' ]
1515
1536
df = df_orig .copy ()
1516
1537
df .ix [:,'C' ] = df .ix [:,'A' ]
1517
1538
assert_frame_equal (df ,expected )
0 commit comments