为了账号安全,请及时绑定邮箱和手机立即绑定

OutOfBoundsDatetime:无法将输入 1575262698000.0 与单位“s”转换

OutOfBoundsDatetime:无法将输入 1575262698000.0 与单位“s”转换

慕容708150 2022-07-12 16:21:16
我正在尝试将该数字从数据帧转换为日期时间,列 time['date'] 如下所示:0     1.575263e+121     1.575263e+122     1.575263e+123     1.575263e+124     1.575307e+12          ...     95    1.576521e+1296    1.576521e+1297    1.576521e+1298    1.576521e+1299    1.576521e+12Name: date, Length: 100, dtype: float64我尝试了以下方法:print(pd.to_datetime(time['date'], unit='s'))但是我在标题中遇到了问题,如果我尝试不unit='s'使用该列,则如下所示:0    1970-01-01 00:26:15.2626980001    1970-01-01 00:26:15.2626990002    1970-01-01 00:26:15.2626980003    1970-01-01 00:26:15.2627010004    1970-01-01 00:26:15.307111000                  ...             95   1970-01-01 00:26:16.52112462396   1970-01-01 00:26:16.52111600097   1970-01-01 00:26:16.52111800098   1970-01-01 00:26:16.52114570199   1970-01-01 00:26:16.521147000Name: date, Length: 100, dtype: datetime64[ns]这当然是错的,知道为什么吗?谢谢!这是输入的示例:1575262698000.0输出应如下所示:2019-12-02 04:58:18
查看完整描述

1 回答

?
红颜莎娜

TA贡献1842条经验 获得超13个赞

您的错误来自熊猫时间戳限制:看起来您的输入列不是以秒为单位,而是以毫秒 (ms) 为单位。为简化起见,仅取一个值:


>>> pd.to_datetime(1575262698000, unit='ms')

Timestamp('2019-12-02 04:58:18')

如果你想以秒为单位,你可以这样做


>>> pd.to_datetime(1575262698000 / 1000, unit='s')

Timestamp('2019-12-02 04:58:18') 

删除unitarg 会产生大约 1970 年的日期时间,因为此参数的默认值是ns纳秒。而 1575262698000 纳秒大约是 1575 秒,或者说在 1970 年 1 月 1 日之后 25 分钟左右不同!


查看完整回答
反对 回复 2022-07-12
  • 1 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号