OutOfBoundsDatetime:无法转换单位为'

时间:2019-05-04 15:19:39

标签: pandas

我想将本机的时间戳转换为当前时间。当我输入以下代码时:

ad_operation['Change_time'] = pd.to_datetime(ad_operation['Change_time'],unit='s')

有这样的错误:“ OutOfBoundsDatetime:不能将输入转换为单位's'”

但是我将数据复制到文件中并设为x,这没有问题,我很困惑,我的数据类型是int64,Data列没有空值。

x = 1529958950
pd.to_datetime(x, unit = 's')

output:Timestamp('2018-06-25 20:35:50')

这是怎么回事?


样本数据ad_operation

    ad_id     Change_time  Operation_type  Modify_field
0  593323               0               2             2
1  593323               0               2             3
2  593323               0               2             4
3  593323  20190217000000               1             1
4  593323  20190218233855               1             2
5  593323  20190218000000               1             1
6  593323  20190230000000               1             1

1 个答案:

答案 0 :(得分:0)

您的日期不是POSIX发出日期以来的秒数,而是采用%Y%m%d%H%M%S格式。

pd.to_datetime(ad_operation.Change_time, format='%Y%m%d%H%M%S', errors='coerce')
#0                        NaT
#1                        NaT
#2                        NaT
#3        2019-02-17 00:00:00
#4        2019-02-18 23:38:55
#5        2019-02-18 00:00:00
#6                        NaT
#....

NAT来自0行。 (或者像2月30日这样的怪异日期)。我们可以看到时间戳与您在故障排除中尝试使用的时间戳不同:

ad_operation[ad_operation.Change_time.ne(0)].Change_time.agg([min, max])
#min    20190216000000
#max    20190319235959
#Name: Change_time, dtype: int64