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

我正在尝试将该数字从数据帧转换为日期时间,列 time['date'] 如下所示:


0     1.575263e+12

1     1.575263e+12

2     1.575263e+12

3     1.575263e+12

4     1.575307e+12

          ...     

95    1.576521e+12

96    1.576521e+12

97    1.576521e+12

98    1.576521e+12

99    1.576521e+12

Name: date, Length: 100, dtype: float64

我尝试了以下方法:


print(pd.to_datetime(time['date'], unit='s'))

但是我在标题中遇到了问题,如果我尝试不unit='s'使用该列,则如下所示:


0    1970-01-01 00:26:15.262698000

1    1970-01-01 00:26:15.262699000

2    1970-01-01 00:26:15.262698000

3    1970-01-01 00:26:15.262701000

4    1970-01-01 00:26:15.307111000

                  ...             

95   1970-01-01 00:26:16.521124623

96   1970-01-01 00:26:16.521116000

97   1970-01-01 00:26:16.521118000

98   1970-01-01 00:26:16.521145701

99   1970-01-01 00:26:16.521147000

Name: date, Length: 100, dtype: datetime64[ns]

这当然是错的,知道为什么吗?谢谢!


这是输入的示例:1575262698000.0输出应如下所示:2019-12-02 04:58:18


慕容708150
浏览 213回答 1
1回答

红颜莎娜

您的错误来自熊猫时间戳限制:看起来您的输入列不是以秒为单位,而是以毫秒 (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 分钟左右不同!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python