@@ -1156,33 +1156,38 @@ def test_fillna_index_period(self):
1156
1156
pass
1157
1157
1158
1158
1159
- class TestReplaceSeriesCoercion (CoercionBase ):
1159
+ @pytest .mark .parametrize ('how' , ['dict' , 'series' ])
1160
+ @pytest .mark .parametrize ('to_key' , [
1161
+ 'object' , 'int64' , 'float64' , 'complex128' , 'bool' , 'datetime64[ns]' ,
1162
+ 'datetime64[ns, UTC]' , 'datetime64[ns, US/Eastern]' , 'timedelta64[ns]' ])
1163
+ @pytest .mark .parametrize ('from_key' , [
1164
+ 'object' , 'int64' , 'float64' , 'complex128' , 'bool' , 'datetime64[ns]' ,
1165
+ 'datetime64[ns, UTC]' , 'datetime64[ns, US/Eastern]' , 'timedelta64[ns]' ])
1166
+ class TestReplaceSeriesCoercion (object ):
1167
+
1168
+ rep = {}
1169
+ rep ['object' ] = ['a' , 'b' ]
1170
+ rep ['int64' ] = [4 , 5 ]
1171
+ rep ['float64' ] = [1.1 , 2.2 ]
1172
+ rep ['complex128' ] = [1 + 1j , 2 + 2j ]
1173
+ rep ['bool' ] = [True , False ]
1174
+ rep ['datetime64[ns]' ] = [pd .Timestamp ('2011-01-01' ),
1175
+ pd .Timestamp ('2011-01-03' )]
1176
+
1177
+ for tz in ['UTC' , 'US/Eastern' ]:
1178
+ # to test tz => different tz replacement
1179
+ key = 'datetime64[ns, {0}]' .format (tz )
1180
+ rep [key ] = [pd .Timestamp ('2011-01-01' , tz = tz ),
1181
+ pd .Timestamp ('2011-01-03' , tz = tz )]
1182
+
1183
+ rep ['timedelta64[ns]' ] = [pd .Timedelta ('1 day' ),
1184
+ pd .Timedelta ('2 day' )]
1185
+
1186
+ def test_replace_series (self , how , to_key , from_key ):
1187
+ if from_key == 'bool' and how == 'series' and compat .PY3 :
1188
+ # doesn't work in PY3, though ...dict_from_bool works fine
1189
+ pytest .skip ("doesn't work as in PY3" )
1160
1190
1161
- # not indexing, but place here for consisntency
1162
-
1163
- klasses = ['series' ]
1164
- method = 'replace'
1165
-
1166
- def setup_method (self , method ):
1167
- self .rep = {}
1168
- self .rep ['object' ] = ['a' , 'b' ]
1169
- self .rep ['int64' ] = [4 , 5 ]
1170
- self .rep ['float64' ] = [1.1 , 2.2 ]
1171
- self .rep ['complex128' ] = [1 + 1j , 2 + 2j ]
1172
- self .rep ['bool' ] = [True , False ]
1173
- self .rep ['datetime64[ns]' ] = [pd .Timestamp ('2011-01-01' ),
1174
- pd .Timestamp ('2011-01-03' )]
1175
-
1176
- for tz in ['UTC' , 'US/Eastern' ]:
1177
- # to test tz => different tz replacement
1178
- key = 'datetime64[ns, {0}]' .format (tz )
1179
- self .rep [key ] = [pd .Timestamp ('2011-01-01' , tz = tz ),
1180
- pd .Timestamp ('2011-01-03' , tz = tz )]
1181
-
1182
- self .rep ['timedelta64[ns]' ] = [pd .Timedelta ('1 day' ),
1183
- pd .Timedelta ('2 day' )]
1184
-
1185
- def _assert_replace_conversion (self , from_key , to_key , how ):
1186
1191
index = pd .Index ([3 , 4 ], name = 'xxx' )
1187
1192
obj = pd .Series (self .rep [from_key ], index = index , name = 'yyy' )
1188
1193
assert obj .dtype == from_key
@@ -1204,7 +1209,6 @@ def _assert_replace_conversion(self, from_key, to_key, how):
1204
1209
(from_key == 'complex128' and
1205
1210
to_key in ('int64' , 'float64' ))):
1206
1211
1207
- # buggy on 32-bit / window
1208
1212
if compat .is_platform_32bit () or compat .is_platform_windows ():
1209
1213
pytest .skip ("32-bit platform buggy: {0} -> {1}" .format
1210
1214
(from_key , to_key ))
@@ -1218,78 +1222,3 @@ def _assert_replace_conversion(self, from_key, to_key, how):
1218
1222
assert exp .dtype == to_key
1219
1223
1220
1224
tm .assert_series_equal (result , exp )
1221
-
1222
- def test_replace_series_object (self ):
1223
- from_key = 'object'
1224
- for to_key in self .rep :
1225
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1226
-
1227
- for to_key in self .rep :
1228
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1229
-
1230
- def test_replace_series_int64 (self ):
1231
- from_key = 'int64'
1232
- for to_key in self .rep :
1233
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1234
-
1235
- for to_key in self .rep :
1236
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1237
-
1238
- def test_replace_series_float64 (self ):
1239
- from_key = 'float64'
1240
- for to_key in self .rep :
1241
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1242
-
1243
- for to_key in self .rep :
1244
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1245
-
1246
- def test_replace_series_complex128 (self ):
1247
- from_key = 'complex128'
1248
- for to_key in self .rep :
1249
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1250
-
1251
- for to_key in self .rep :
1252
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1253
-
1254
- def test_replace_series_bool (self ):
1255
- from_key = 'bool'
1256
- for to_key in self .rep :
1257
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1258
-
1259
- for to_key in self .rep :
1260
-
1261
- if compat .PY3 :
1262
- # doesn't work in PY3, though ...dict_from_bool works fine
1263
- pytest .skip ("doesn't work as in PY3" )
1264
-
1265
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1266
-
1267
- def test_replace_series_datetime64 (self ):
1268
- from_key = 'datetime64[ns]'
1269
- for to_key in self .rep :
1270
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1271
-
1272
- from_key = 'datetime64[ns]'
1273
- for to_key in self .rep :
1274
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1275
-
1276
- def test_replace_series_datetime64tz (self ):
1277
- from_key = 'datetime64[ns, US/Eastern]'
1278
- for to_key in self .rep :
1279
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1280
-
1281
- from_key = 'datetime64[ns, US/Eastern]'
1282
- for to_key in self .rep :
1283
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1284
-
1285
- def test_replace_series_timedelta64 (self ):
1286
- from_key = 'timedelta64[ns]'
1287
- for to_key in self .rep :
1288
- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1289
-
1290
- from_key = 'timedelta64[ns]'
1291
- for to_key in self .rep :
1292
- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1293
-
1294
- def test_replace_series_period (self ):
1295
- pass
0 commit comments