@@ -1195,35 +1195,38 @@ def test_fillna_index_period(self):
1195
1195
pass
1196
1196
1197
1197
1198
- @td .skip_if_windows
1199
- @td .skip_if_32bit
1200
- class TestReplaceSeriesCoercion (CoercionBase ):
1198
+ @pytest .mark .parametrize ('how' , ['dict' , 'series' ])
1199
+ @pytest .mark .parametrize ('to_key' , [
1200
+ 'object' , 'int64' , 'float64' , 'complex128' , 'bool' , 'datetime64[ns]' ,
1201
+ 'datetime64[ns, UTC]' , 'datetime64[ns, US/Eastern]' , 'timedelta64[ns]' ])
1202
+ @pytest .mark .parametrize ('from_key' , [
1203
+ 'object' , 'int64' , 'float64' , 'complex128' , 'bool' , 'datetime64[ns]' ,
1204
+ 'datetime64[ns, UTC]' , 'datetime64[ns, US/Eastern]' , 'timedelta64[ns]' ])
1205
+ class TestReplaceSeriesCoercion (object ):
1206
+
1207
+ rep = {}
1208
+ rep ['object' ] = ['a' , 'b' ]
1209
+ rep ['int64' ] = [4 , 5 ]
1210
+ rep ['float64' ] = [1.1 , 2.2 ]
1211
+ rep ['complex128' ] = [1 + 1j , 2 + 2j ]
1212
+ rep ['bool' ] = [True , False ]
1213
+ rep ['datetime64[ns]' ] = [pd .Timestamp ('2011-01-01' ),
1214
+ pd .Timestamp ('2011-01-03' )]
1215
+
1216
+ for tz in ['UTC' , 'US/Eastern' ]:
1217
+ # to test tz => different tz replacement
1218
+ key = 'datetime64[ns, {0}]' .format (tz )
1219
+ rep [key ] = [pd .Timestamp ('2011-01-01' , tz = tz ),
1220
+ pd .Timestamp ('2011-01-03' , tz = tz )]
1221
+
1222
+ rep ['timedelta64[ns]' ] = [pd .Timedelta ('1 day' ),
1223
+ pd .Timedelta ('2 day' )]
1224
+
1225
+ def test_replace_series (self , how , to_key , from_key ):
1226
+ if from_key == 'bool' and how == 'series' and compat .PY3 :
1227
+ # doesn't work in PY3, though ...dict_from_bool works fine
1228
+ pytest .skip ("doesn't work as in PY3" )
1201
1229
1202
- # not indexing, but place here for consisntency
1203
-
1204
- klasses = ['series' ]
1205
- method = 'replace'
1206
-
1207
- def setup_method (self , method ):
1208
- self .rep = {}
1209
- self .rep ['object' ] = ['a' , 'b' ]
1210
- self .rep ['int64' ] = [4 , 5 ]
1211
- self .rep ['float64' ] = [1.1 , 2.2 ]
1212
- self .rep ['complex128' ] = [1 + 1j , 2 + 2j ]
1213
- self .rep ['bool' ] = [True , False ]
1214
- self .rep ['datetime64[ns]' ] = [pd .Timestamp ('2011-01-01' ),
1215
- pd .Timestamp ('2011-01-03' )]
1216
-
1217
- for tz in ['UTC' , 'US/Eastern' ]:
1218
- # to test tz => different tz replacement
1219
- key = 'datetime64[ns, {0}]' .format (tz )
1220
- self .rep [key ] = [pd .Timestamp ('2011-01-01' , tz = tz ),
1221
- pd .Timestamp ('2011-01-03' , tz = tz )]
1222
-
1223
- self .rep ['timedelta64[ns]' ] = [pd .Timedelta ('1 day' ),
1224
- pd .Timedelta ('2 day' )]
1225
-
1226
- def _assert_replace_conversion (self , from_key , to_key , how ):
1227
1230
index = pd .Index ([3 , 4 ], name = 'xxx' )
1228
1231
obj = pd .Series (self .rep [from_key ], index = index , name = 'yyy' )
1229
1232
assert obj .dtype == from_key
@@ -1245,6 +1248,9 @@ def _assert_replace_conversion(self, from_key, to_key, how):
1245
1248
(from_key == 'complex128' and
1246
1249
to_key in ('int64' , 'float64' ))):
1247
1250
1251
+ td .skip_if_32bit ()
1252
+ td .skip_if_windows ()
1253
+
1248
1254
# Expected: do not downcast by replacement
1249
1255
exp = pd .Series (self .rep [to_key ], index = index ,
1250
1256
name = 'yyy' , dtype = from_key )
@@ -1254,78 +1260,3 @@ def _assert_replace_conversion(self, from_key, to_key, how):
1254
1260
assert exp .dtype == to_key
1255
1261
1256
1262
tm .assert_series_equal (result , exp )
1257
-
1258
- def test_replace_series_object (self ):
1259
- from_key = 'object'
1260
- for to_key in self .rep :
1261
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1262
-
1263
- for to_key in self .rep :
1264
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1265
-
1266
- def test_replace_series_int64 (self ):
1267
- from_key = 'int64'
1268
- for to_key in self .rep :
1269
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1270
-
1271
- for to_key in self .rep :
1272
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1273
-
1274
- def test_replace_series_float64 (self ):
1275
- from_key = 'float64'
1276
- for to_key in self .rep :
1277
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1278
-
1279
- for to_key in self .rep :
1280
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1281
-
1282
- def test_replace_series_complex128 (self ):
1283
- from_key = 'complex128'
1284
- for to_key in self .rep :
1285
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1286
-
1287
- for to_key in self .rep :
1288
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1289
-
1290
- def test_replace_series_bool (self ):
1291
- from_key = 'bool'
1292
- for to_key in self .rep :
1293
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1294
-
1295
- for to_key in self .rep :
1296
-
1297
- if compat .PY3 :
1298
- # doesn't work in PY3, though ...dict_from_bool works fine
1299
- pytest .skip ("doesn't work as in PY3" )
1300
-
1301
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1302
-
1303
- def test_replace_series_datetime64 (self ):
1304
- from_key = 'datetime64[ns]'
1305
- for to_key in self .rep :
1306
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1307
-
1308
- from_key = 'datetime64[ns]'
1309
- for to_key in self .rep :
1310
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1311
-
1312
- def test_replace_series_datetime64tz (self ):
1313
- from_key = 'datetime64[ns, US/Eastern]'
1314
- for to_key in self .rep :
1315
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1316
-
1317
- from_key = 'datetime64[ns, US/Eastern]'
1318
- for to_key in self .rep :
1319
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1320
-
1321
- def test_replace_series_timedelta64 (self ):
1322
- from_key = 'timedelta64[ns]'
1323
- for to_key in self .rep :
1324
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1325
-
1326
- from_key = 'timedelta64[ns]'
1327
- for to_key in self .rep :
1328
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1329
-
1330
- def test_replace_series_period (self ):
1331
- pass
0 commit comments