I want to convert this Origin
column in the dataframe data_copy
to UTC datetime format
JavaScript
x
16
16
1
import pandas as pd
2
3
>>>data_copy["Origin"]
4
5
0 1669-06-04 00:00:00
6
1 1669-06-22 00:00:00
7
2 1720-07-15 00:00:00
8
3 1803-09-01 00:00:00
9
4 1816-05-26 00:00:00
10
11
6395 2020-03-29 18:27:36
12
6396 2020-03-29 18:47:53
13
6397 2020-03-29 20:05:19
14
6398 2020-03-30 02:19:27
15
6399 2020-03-30 06:11:36
16
There is also some data entries with 00:00:00
Time (I need to convert this also)
I tried this command
data_copy["Origin"] = pd.to_datetime(data_copy["Origin"],infer_datetime_format=True)
But I am getting error like this
JavaScript
1
41
41
1
Traceback (most recent call last):
2
3
File "C:ProgramDataAnaconda3envsroseslibsite-packagespandascorearraysdatetimes.py", line 2054, in objects_to_datetime64ns
4
values, tz_parsed = conversion.datetime_to_datetime64(data)
5
6
File "pandas_libstslibsconversion.pyx", line 350, in pandas._libs.tslibs.conversion.datetime_to_datetime64
7
8
TypeError: Unrecognized value type: <class 'str'>
9
10
11
During handling of the above exception, another exception occurred:
12
13
Traceback (most recent call last):
14
15
File "<ipython-input-93-aead2d23f264>", line 1, in <module>
16
data_copy["Origin"] = pd.to_datetime(data_copy["Origin"],infer_datetime_format=True)
17
18
File "C:ProgramDataAnaconda3envsroseslibsite-packagespandascoretoolsdatetimes.py", line 803, in to_datetime
19
values = convert_listlike(arg._values, format)
20
21
File "C:ProgramDataAnaconda3envsroseslibsite-packagespandascoretoolsdatetimes.py", line 466, in _convert_listlike_datetimes
22
allow_object=True,
23
24
File "C:ProgramDataAnaconda3envsroseslibsite-packagespandascorearraysdatetimes.py", line 2059, in objects_to_datetime64ns
25
raise e
26
27
File "C:ProgramDataAnaconda3envsroseslibsite-packagespandascorearraysdatetimes.py", line 2050, in objects_to_datetime64ns
28
require_iso8601=require_iso8601,
29
30
File "pandas_libstslib.pyx", line 352, in pandas._libs.tslib.array_to_datetime
31
32
File "pandas_libstslib.pyx", line 574, in pandas._libs.tslib.array_to_datetime
33
34
File "pandas_libstslib.pyx", line 570, in pandas._libs.tslib.array_to_datetime
35
36
File "pandas_libstslib.pyx", line 546, in pandas._libs.tslib.array_to_datetime
37
38
File "pandas_libstslibsnp_datetime.pyx", line 113, in pandas._libs.tslibs.np_datetime.check_dts_bounds
39
40
OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1669-06-04 00:00:00
41
How could I convert the column into UTC datetime format?
Advertisement
Answer
Here is problem datetimes are outside limits in pandas link:
In [92]: pd.Timestamp.min
Out[92]: Timestamp(‘1677-09-21 00:12:43.145225’)
In [93]: pd.Timestamp.max
Out[93]: Timestamp(‘2262-04-11 23:47:16.854775807’)
Possible solution is replace values to NaT
by errors='coerce'
parameter:
JavaScript
1
4
1
data_copy["Origin"] = pd.to_datetime(data_copy["Origin"],
2
infer_datetime_format=True,
3
errors='coerce')
4