纪元纳秒转换成普通时间

4

i have a data as

name        time
0   acn  1530677359000000000
1   acn  1530677363000000000 
2   acn  1530681023000000000 
3   acn  1530681053000000000 
4   acn  1530681531000000000 
5   acn  1530681561000000000

我想将 time 列更改为 datetime 格式。

我尝试执行以下代码:

df['time'] = pd.to_datetime(df['time'])

但是输出结果不正确:

Out[70]:
0 2078-09-01 09:55:28.826007552
1 2078-10-17 17:02:08.826007552
2 2194-10-10 19:42:08.826007552
3 2195-09-23 01:02:08.826007552
4 2210-11-16 10:48:48.826007552
5 2211-10-29 16:08:48.826007552

我使用的是 Python 2.7,请帮忙检查一下。


1
pd.to_datetime(1530677359000000000, unit='ns') - MaxNoe
2个回答

3

如果进行矢量化操作,您可以使用pd.to_datetimeunit='ns'参数一起使用。

df['datetime'] = pd.to_datetime(df['time'], unit='ns')

print(df)

  name                 time            datetime
0  acn  1530677359000000000 2018-07-04 04:09:19
1  acn  1530677363000000000 2018-07-04 04:09:23
2  acn  1530681023000000000 2018-07-04 05:10:23
3  acn  1530681053000000000 2018-07-04 05:10:53
4  acn  1530681531000000000 2018-07-04 05:18:51
5  acn  1530681561000000000 2018-07-04 05:19:21

2
import datetime

df.time = df.time.apply(lambda x: datetime.datetime.fromtimestamp(x / 1e9))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接