@@ -83,48 +83,50 @@ def test_to_datetime_format_YYYYMMDD(self, cache):
83
83
result = to_datetime (s , format = '%Y%m%d' , cache = cache )
84
84
assert_series_equal (result , expected )
85
85
86
+ # coercion
87
+ # GH 7930
88
+ s = Series ([20121231 , 20141231 , 99991231 ])
89
+ result = pd .to_datetime (s , format = '%Y%m%d' , errors = 'ignore' ,
90
+ cache = cache )
91
+ expected = Series ([datetime (2012 , 12 , 31 ),
92
+ datetime (2014 , 12 , 31 ), datetime (9999 , 12 , 31 )],
93
+ dtype = object )
94
+ tm .assert_series_equal (result , expected )
95
+
96
+ result = pd .to_datetime (s , format = '%Y%m%d' , errors = 'coerce' ,
97
+ cache = cache )
98
+ expected = Series (['20121231' , '20141231' , 'NaT' ], dtype = 'M8[ns]' )
99
+ tm .assert_series_equal (result , expected )
100
+
101
+ @pytest .mark .parametrize ('cache' , [True , False ])
102
+ def test_to_datetime_format_YYYYMMDD_overflow (self , cache ):
86
103
# GH 25512
87
104
# NaN before strings with invalid date values, errors=coerce
88
105
s = Series (['19801222' , np .nan , '20010012' , '10019999' ])
89
106
result = pd .to_datetime (s , format = '%Y%m%d' , errors = 'coerce' ,
90
107
cache = cache )
91
108
expected = Series ([Timestamp ('19801222' ), np .nan , np .nan , np .nan ])
92
- tm . assert_series_equal (result , expected )
109
+ assert_series_equal (result , expected )
93
110
94
111
# NaN after strings with invalid date values, errors=coerce
95
112
s = Series (['19801222' , '20010012' , '10019999' , np .nan ])
96
113
result = pd .to_datetime (s , format = '%Y%m%d' , errors = 'coerce' ,
97
114
cache = cache )
98
115
expected = Series ([Timestamp ('19801222' ), np .nan , np .nan , np .nan ])
99
- tm . assert_series_equal (result , expected )
116
+ assert_series_equal (result , expected )
100
117
101
118
# NaN before integers with invalid date values, errors=coerce
102
119
s = Series ([20190813 , np .nan , 20010012 , 20019999 ])
103
120
result = pd .to_datetime (s , format = '%Y%m%d' , errors = 'coerce' ,
104
121
cache = cache )
105
122
expected = Series ([Timestamp ('20190813' ), np .nan , np .nan , np .nan ])
106
- tm . assert_series_equal (result , expected )
123
+ assert_series_equal (result , expected )
107
124
108
125
# NaN after integers with invalid date values, errors=coerce
109
126
s = Series ([20190813 , 20010012 , np .nan , 20019999 ])
110
127
result = pd .to_datetime (s , format = '%Y%m%d' , errors = 'coerce' ,
111
128
cache = cache )
112
129
expected = Series ([Timestamp ('20190813' ), np .nan , np .nan , np .nan ])
113
- tm .assert_series_equal (result , expected )
114
-
115
- # coercion
116
- # GH 7930
117
- s = Series ([20121231 , 20141231 , 99991231 ])
118
- result = pd .to_datetime (s , format = '%Y%m%d' , errors = 'ignore' ,
119
- cache = cache )
120
- expected = Series ([datetime (2012 , 12 , 31 ),
121
- datetime (2014 , 12 , 31 ), datetime (9999 , 12 , 31 )],
122
- dtype = object )
123
- tm .assert_series_equal (result , expected )
124
-
125
- result = pd .to_datetime (s , format = '%Y%m%d' , errors = 'coerce' ,
126
- cache = cache )
127
- expected = Series (['20121231' , '20141231' , 'NaT' ], dtype = 'M8[ns]' )
128
130
assert_series_equal (result , expected )
129
131
130
132
@pytest .mark .parametrize ('cache' , [True , False ])
0 commit comments