Pandas OutOfBoundsDatetime:无法转换单位为';s';
我想将装置的时间戳转换为当前时间。当我输入以下代码时:Pandas OutOfBoundsDatetime:无法转换单位为';s';,pandas,Pandas,我想将装置的时间戳转换为当前时间。当我输入以下代码时: ad_operation['Change_time'] = pd.to_datetime(ad_operation['Change_time'],unit='s') 它有这样一个错误:“OutOfBoundsDatetime:无法使用单位“s”转换输入” 但我在文件中复制了一个数据,并将其设置为x,它没有问题,我很困惑,我的数据类型是int64,数据列没有空值 x = 1529958950 pd.to_datetime(x, unit =
ad_operation['Change_time'] = pd.to_datetime(ad_operation['Change_time'],unit='s')
它有这样一个错误:“OutOfBoundsDatetime:无法使用单位“s”转换输入”
但我在文件中复制了一个数据,并将其设置为x,它没有问题,我很困惑,我的数据类型是int64,数据列没有空值
x = 1529958950
pd.to_datetime(x, unit = 's')
output:Timestamp('2018-06-25 20:35:50')
进展如何
样本数据
ad\u操作
:
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
您的日期不是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