纪元纳秒到正常时间
epoch nanoseconds to normal time
我有一个数据为
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。请看一下。
import datetime
df.time = df.time.apply(lambda x: datetime.datetime.fromtimestamp(x / 1e9))
矢量化,您可以将 pd.to_datetime
与 unit='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
我有一个数据为
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。请看一下。
import datetime
df.time = df.time.apply(lambda x: datetime.datetime.fromtimestamp(x / 1e9))
矢量化,您可以将 pd.to_datetime
与 unit='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