Python 如何将微秒转换为人类可读的日期&;时间是多少?

Python 如何将微秒转换为人类可读的日期&;时间是多少?,python,pandas,datetime,python-datetime,Python,Pandas,Datetime,Python Datetime,因此,我试图将熊猫数据帧中的“事件时间”(时间单位为微秒,自1970-01-01 00:00 UTC起)列转换为人类可读的日期和时间 列名称:df['Event Time'] 输入:df['Event Time'].iloc[0] 输出:1519952249827533 我需要一个脚本来转换整个列 我尝试了以下方法,但需要更简单的方法: from datetime import datetime, timedelta epoch = datetime(1970, 1, 1) cookie_mic

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

列名称:df['Event Time']

输入: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)

谢谢大家!

使用
pd.\u datetime
并将
单位指定为微秒。请注意,微秒的单位是
us
(几分钟前我还不知道(-:)

MCVE 如果需要字符串结果而不是
时间戳
请使用
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的更多信息,请参阅。

因为它们是纳秒,我怀疑它们真的是微秒,就像OP说的那样。1519952249827533us在2018-03-02这一纪元之后,这似乎比1970-01-18更可能。@abarnert在这种情况下,一秒。@UlisesSotomayor你得到的是
时间戳
对象,而不是字符串小数点只是其表示形式的一部分。当您需要打印它们或以其他方式将它们转换为字符串时,您可以在打印/转换时这样做。@UlisesSotomayor尤其是,
Timestamp('2018-03-02 00:57:29')
Timestamp('2018-03-02 00:57:29.000000')的值完全相同
好的,我添加了我所处理的代码,您可以撤消拇指吗?您的代码正在将时间戳转换为字符串。您真的希望这样做,还是希望将它们保留为时间戳对象(您可以对其进行算术和比较,存储在内存和磁盘中的时间越小,操作速度越快)并且只根据需要将它们转换为字符串,比如说,输出报告?
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
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