python - 如何使用 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)
谢谢!
解决方案
使用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。
推荐阅读
- laravel - 如何检查电子邮件是否未验证 Laravel 7?
- c# - 无法在 Unity、MacOS 中打开 C# 脚本文件
- python - 创建 Pandas 数据框时如何忽略括号内的分隔符?
- c# - C# wpf hittest 对角线
- android - 如何在 Android MotionLayout/MotionScene 中无限运行动画定义?
- ada - 检测行尾的 Ada 程序
- instagram - instagram 帖子的链接响应中始终缺少 Open Graph 元标记
- reactjs - 如何在 Visual Studio 2019 v16.6 子目录下配置 npm 和 package.json?
- docker - 在k8s节点上,如何管理节点上电时的pod磁盘IOland-rush?
- joi - 我可以将枚举用于 JOi 架构属性名称吗