1

I am getting this error

  File "pandas/_libs/tslib.pyx", line 356, in pandas._libs.tslib.array_with_unit_to_datetime
pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: cannot convert input with unit 's'

when trying to convert pandas column to datetime format.

I checked this answer Convert unix time to readable date in pandas dataframe

but it did not help me to solve the problem.

There is an issue on github that seems to be closed but in the same time people keep reporting issues: https://github.com/pandas-dev/pandas/issues/10987

Dataframe column has unix time format, here is print out of top 20 rows

0      1420096800
1      1420096800
2      1420097100
3      1420097100
4      1420097400
5      1420097400
6      1420093800
7      1420097700
8      1420097700
9      1420098000
10     1420098480
11     1420098600
12     1420099200
13     1420099500
14     1420099500
15     1420100100
16     1420100400
17     1420096800
18     1420100700
19     1420100820
20     1420101840

Any ideas about how I might solve it?

I tried changing units from s to ms, but it did not help.

pd.__version__
'0.24.2'

Row

df[key] = pd.to_datetime(df[key], unit='s')
YohanRoth
  • 3,153
  • 4
  • 31
  • 58

1 Answers1

4

It works if you add the origin='unix' parameter:

pd.to_datetime(df['date'], origin='unix', unit='s')

0    2015-01-01 07:20:00
1    2015-01-01 07:20:00
2    2015-01-01 07:25:00
3    2015-01-01 07:25:00
4    2015-01-01 07:30:00
cs95
  • 379,657
  • 97
  • 704
  • 746