如何使用Python熊猫将微秒转换为人类可读的日期和时间?

时间:2018-06-22 17:43:13

标签: python pandas datetime python-datetime

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

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

输入: df ['Event Time']。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)

谢谢!

1 个答案:

答案 0 :(得分:2)

使用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