【问题标题】:How to convert a unix epoch to highly accurate timestamp [pandas]?如何将 unix 纪元转换为高度准确的时间戳 [pandas]?
【发布时间】:2019-09-14 22:25:08
【问题描述】:

我有一个带有 unix 纪元的时间序列,我想将其转换为格式为 '%Y-%m-%d %H:%M:%S.%f' 的时间。

当我使用时

   pd.to_datetime(data['Time'],format='%Y-%m-%d %H:%M:%S.%f')

我得到的日期大约是 1970-01-01 00:23:03.270,这是不正确的(因为我的数据的实时时间大约是 2013-11-01) 当我尝试

   pd.to_datetime(data['Time'],unit='ms')

我有正确的日期,但我没有纳米精度。另一方面,当我结合单位和格式时,例如

   pd.to_datetime(data['Time'],unit='ms',format='%Y-%m-%d %H:%M:%S.%f')

我收到一个代码错误,提示“无法同时指定格式和单位”。

你知道如何解决这个问题吗?

【问题讨论】:

  • 改用pd.to_datetime(data['Time'], unit='s')
  • 错误:不能用单位's'转换1383260000000.0
  • 您的Time 列是什么样的?请发布此data['Time'].head() 的输出
  • 它看起来像这样Float64Index([1383260000000.0,1383260000000.0,1383260000000.0,1383260000000.0,1383260000000.0,1383260000000.0,1383260000000.0,1383260000000.0,1383260000000.0,1383260000000.0,... 1383340000000.0,1383340000000.0,1383340000000.0,1383340000000.0,1383340000000.0,1383340000000.0, 1383340000000.0, 1383340000000.0, 1383340000000.0, 1383340000000.0], dtype='float64', name='Time', length=1048576)

标签: pandas datetime timestamp time-series


【解决方案1】:

尝试与astype 结合使用?

pd.to_datetime(data['time'].astype(float)/1e9, unit='ms')

【讨论】:

  • 它提供了所需的准确性,但仍然给出了错误的日期 (1970-01-01)
【解决方案2】:

您的一些示例数据作为数据框称为df

            Time
0   1.383260e+12
1   1.383260e+12
2   1.383260e+12
3   1.383260e+12
4   1.383260e+12
5   1.383260e+12
6   1.383260e+12
7   1.383260e+12
8   1.383260e+12
9   1.383260e+12
10  1.383340e+12
11  1.383340e+12
12  1.383340e+12
13  1.383340e+12
14  1.383340e+12
15  1.383340e+12
16  1.383340e+12
17  1.383340e+12
18  1.383340e+12
19  1.383340e+12

转换为datetime 对象,然后设置您想要的格式:

pd.to_datetime(df.Time, unit='ms').dt.strftime('%Y-%m-%d %H:%M:%S.%f')

这给出了:

0     2013-10-31 22:53:20.000000
1     2013-10-31 22:53:20.000000
2     2013-10-31 22:53:20.000000
3     2013-10-31 22:53:20.000000
4     2013-10-31 22:53:20.000000
5     2013-10-31 22:53:20.000000
6     2013-10-31 22:53:20.000000
7     2013-10-31 22:53:20.000000
8     2013-10-31 22:53:20.000000
9     2013-10-31 22:53:20.000000
10    2013-11-01 21:06:40.000000
11    2013-11-01 21:06:40.000000
12    2013-11-01 21:06:40.000000
13    2013-11-01 21:06:40.000000
14    2013-11-01 21:06:40.000000
15    2013-11-01 21:06:40.000000
16    2013-11-01 21:06:40.000000
17    2013-11-01 21:06:40.000000
18    2013-11-01 21:06:40.000000
19    2013-11-01 21:06:40.000000

【讨论】:

    猜你喜欢
    • 2016-01-21
    • 2021-07-09
    • 2018-08-03
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    相关资源
    最近更新 更多