@@ -177,6 +177,28 @@ def test_to_datetime_format_YYYYMMDD_overflow(self, input_s, expected):
177
177
result = to_datetime (input_s , format = "%Y%m%d" , errors = "coerce" )
178
178
tm .assert_series_equal (result , expected )
179
179
180
+ @pytest .mark .parametrize (
181
+ "data, format, expected" ,
182
+ [
183
+ ([pd .NA ], "%Y%m%d%H%M%S" , DatetimeIndex (["NaT" ])),
184
+ ([pd .NA ], None , DatetimeIndex (["NaT" ])),
185
+ (
186
+ [pd .NA , "20210202202020" ],
187
+ "%Y%m%d%H%M%S" ,
188
+ DatetimeIndex (["NaT" , "2021-02-02 20:20:20" ]),
189
+ ),
190
+ (["201010" , pd .NA ], "%y%m%d" , DatetimeIndex (["2020-10-10" , "NaT" ])),
191
+ (["201010" , pd .NA ], "%d%m%y" , DatetimeIndex (["2010-10-20" , "NaT" ])),
192
+ (["201010" , pd .NA ], None , DatetimeIndex (["2010-10-20" , "NaT" ])),
193
+ ([None , np .nan , pd .NA ], None , DatetimeIndex (["NaT" , "NaT" , "NaT" ])),
194
+ ([None , np .nan , pd .NA ], "%Y%m%d" , DatetimeIndex (["NaT" , "NaT" , "NaT" ])),
195
+ ],
196
+ )
197
+ def test_to_datetime_with_NA (self , data , format , expected ):
198
+ # GH#42957
199
+ result = to_datetime (data , format = format )
200
+ tm .assert_index_equal (result , expected )
201
+
180
202
@pytest .mark .parametrize ("cache" , [True , False ])
181
203
def test_to_datetime_format_integer (self , cache ):
182
204
# GH 10178
@@ -383,26 +405,6 @@ def test_to_datetime_parse_timezone_keeps_name(self):
383
405
expected = DatetimeIndex (["2010-01-01 12:00:00" ], tz = "UTC" , name = "foo" )
384
406
tm .assert_index_equal (result , expected )
385
407
386
- @pytest .mark .parametrize (
387
- "data, format, expected" ,
388
- [
389
- ([pd .NA ], "%Y%m%d%H%M%S" , DatetimeIndex (["NaT" ])),
390
- ([pd .NA ], None , DatetimeIndex (["NaT" ])),
391
- (
392
- [pd .NA , "20210202202020" ],
393
- "%Y%m%d%H%M%S" ,
394
- DatetimeIndex (["NaT" , "2021-02-02 20:20:20" ]),
395
- ),
396
- (["201010" , pd .NA ], "%y%m%d" , DatetimeIndex (["2020-10-10" , "NaT" ])),
397
- (["201010" , pd .NA ], "%d%m%y" , DatetimeIndex (["2010-10-20" , "NaT" ])),
398
- (["201010" , pd .NA ], None , DatetimeIndex (["2010-10-20" , "NaT" ])),
399
- ],
400
- )
401
- def test_to_datetime_with_pdNA (self , data , format , expected ):
402
- # GH#42957
403
- result = to_datetime (data , format = format )
404
- tm .assert_index_equal (result , expected )
405
-
406
408
407
409
class TestToDatetime :
408
410
@pytest .mark .parametrize (
0 commit comments