首页 > 解决方案 > 如何使用 Python Pandas 将微秒转换为人类可读的日期和时间?

问题描述

所以我试图将熊猫数据框中的“事件时间”(自 1970-01-01 00:00:00 UTC 以来的微秒时间)列转换为人类可读的日期和时间。

列名:df['事件时间']

输入:df['事件时间'].iloc[0]
输出:1519952249827533

我需要一个脚本来转换整个列。

我尝试了以下方法,但需要更简单的东西:

from datetime import datetime, timedelta
epoch = datetime(1970, 1, 1)
cookie_microseconds_since_epoch = df['Event Time'].iloc[0]
cookie_datetime = epoch + timedelta(microseconds=cookie_microseconds_since_epoch)
str(cookie_datetime)

谢谢!

标签: pythonpandasdatetimepython-datetime

解决方案


使用pd.to_datetime并指定unit为微秒。请注意,微秒单位是us(几分钟前我不知道(-:)

df['Event Time'] = pd.to_datetime(df['Event Time'], unit='us')

MCVE

df = pd.DataFrame({'Event Time': [1519952249827533]})

df['Event Time'] = pd.to_datetime(df['Event Time'], unit='us').dt.floor('s')

df

           Event Time
0 2018-03-02 00:57:29

如果你想要一个字符串结果而不是Timestamps使用strftime

pd.to_datetime(df['Event Time'], unit='us').dt.strftime('%Y-%m-%d %H:%M:%S')

0    2018-03-02 00:57:29
Name: Event Time, dtype: object

有关使用strftime的更多信息,请参阅 strftime.org。


推荐阅读