@@ -1153,12 +1153,27 @@ def setUp(self):
1153
1153
self .rep ['float64' ] = [1.1 , 2.2 ]
1154
1154
self .rep ['complex128' ] = [1 + 1j , 2 + 2j ]
1155
1155
self .rep ['bool' ] = [True , False ]
1156
+ self .rep ['datetime64[ns]' ] = [pd .Timestamp ('2011-01-01' ),
1157
+ pd .Timestamp ('2011-01-03' )]
1158
+
1159
+ for tz in ['UTC' , 'US/Eastern' ]:
1160
+ # to test tz => different tz replacement
1161
+ key = 'datetime64[ns, {0}]' .format (tz )
1162
+ self .rep [key ] = [pd .Timestamp ('2011-01-01' , tz = tz ),
1163
+ pd .Timestamp ('2011-01-03' , tz = tz )]
1164
+
1165
+ self .rep ['timedelta64[ns]' ] = [pd .Timedelta ('1 day' ),
1166
+ pd .Timedelta ('2 day' )]
1156
1167
1157
1168
def _assert_replace_conversion (self , from_key , to_key , how ):
1158
1169
index = pd .Index ([3 , 4 ], name = 'xxx' )
1159
1170
obj = pd .Series (self .rep [from_key ], index = index , name = 'yyy' )
1160
1171
self .assertEqual (obj .dtype , from_key )
1161
1172
1173
+ if (from_key .startswith ('datetime' ) and to_key .startswith ('datetime' )):
1174
+ # different tz, currently mask_missing raises SystemError
1175
+ return
1176
+
1162
1177
if how == 'dict' :
1163
1178
replacer = dict (zip (self .rep [from_key ], self .rep [to_key ]))
1164
1179
elif how == 'series' :
@@ -1175,17 +1190,12 @@ def _assert_replace_conversion(self, from_key, to_key, how):
1175
1190
pytest .skip ("windows platform buggy: {0} -> {1}" .format
1176
1191
(from_key , to_key ))
1177
1192
1178
- if ((from_key == 'float64' and
1179
- to_key in ('bool' , 'int64' )) or
1180
-
1193
+ if ((from_key == 'float64' and to_key in ('bool' , 'int64' )) or
1181
1194
(from_key == 'complex128' and
1182
1195
to_key in ('bool' , 'int64' , 'float64' )) or
1183
1196
1184
- (from_key == 'int64' and
1185
- to_key in ('bool' )) or
1186
-
1187
1197
# TODO_GH12747 The result must be int?
1188
- (from_key == 'bool ' and to_key == 'int64' )):
1198
+ (from_key == 'int64 ' and to_key in ( 'bool' ) )):
1189
1199
1190
1200
# buggy on 32-bit
1191
1201
if tm .is_platform_32bit ():
@@ -1248,13 +1258,31 @@ def test_replace_series_bool(self):
1248
1258
self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1249
1259
1250
1260
def test_replace_series_datetime64 (self ):
1251
- pass
1261
+ from_key = 'datetime64[ns]'
1262
+ for to_key in self .rep :
1263
+ self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1264
+
1265
+ from_key = 'datetime64[ns]'
1266
+ for to_key in self .rep :
1267
+ self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1252
1268
1253
1269
def test_replace_series_datetime64tz (self ):
1254
- pass
1270
+ from_key = 'datetime64[ns, US/Eastern]'
1271
+ for to_key in self .rep :
1272
+ self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1273
+
1274
+ from_key = 'datetime64[ns, US/Eastern]'
1275
+ for to_key in self .rep :
1276
+ self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1255
1277
1256
1278
def test_replace_series_timedelta64 (self ):
1257
- pass
1279
+ from_key = 'timedelta64[ns]'
1280
+ for to_key in self .rep :
1281
+ self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1282
+
1283
+ from_key = 'timedelta64[ns]'
1284
+ for to_key in self .rep :
1285
+ self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1258
1286
1259
1287
def test_replace_series_period (self ):
1260
1288
pass
0 commit comments