python - 如何将列转换为以毫秒为单位的时间?
问题描述
我有以下包含 2 列的 txt 文件:
Date, Time
2013/1/4, 07:00:00.0
2013/1/4, 07:00:00.1
2013/1/4, 07:00:00.2
2013/1/4, 07:00:00.3
2013/1/4, 07:00:00.4
2013/1/4, 07:00:00.5
2013/1/4, 07:00:00.6
2013/1/4, 07:00:00.7
2013/1/4, 07:00:00.8
2013/1/4, 07:00:00.9
2013/1/4, 07:00:00.10
2013/1/4, 07:00:00.11
2013/1/4, 07:00:00.12
2013/1/4, 07:00:00.13
2013/1/4, 07:00:00.14
2013/1/4, 07:00:00.15
2013/1/4, 07:00:00.16
我需要将对象转换为时间格式。对于使用的“日期”(并且它按预期工作):
df['Date'] = pd.to_datetime(df['Date'])
对于我曾经关注的“时间”(全部失败,是的,我试图搜索并阅读熊猫文档)
df['Time']= (pd.to_datetime(df['Time'].str.strip(), format='%H:%M:%S:%F'))
df['Time'] = datetime.time(df['Time'], '%H:%M:%S,%f')
df['Time'] = datetime.datetime.strptime("%H:%M:%S,%f").timestamp()
甚至尝试过这个:
df['DateTime'] = pd.to_datetime(df.pop('Date')) + pd.to_timedelta(df.pop('Time'))
请建议我在这里做错了什么以完成时间格式。非常感谢您的帮助!
解决方案
将列连接为字符串可能更简单,将它们转换为日期/时间对象,然后进一步操作它们(如果需要)。
对于您的数据,以下内容对我有用:
pd.to_datetime(df.Date + ' ' + df.Time)
(请注意df.Date + ' ' + df.Time
,在您的情况下,以熊猫可以理解的格式制作字符串系列。)
要获取小时,例如:
df['foo'] = pd.to_datetime(df.Date + ' ' + df.Time)
df.foo.dt.hour
推荐阅读
- git - git删除了我所有的文件。如何恢复它们?
- mysql - 使用 Aurora-MySQL 进行查询的问题适用于 MySQL
- javascript - 如何通过 id 合并对象属性
- java - 旋转具有白色背景的缓冲图像
- node.js - NodeJs:我不能在没有 https 的情况下调用 http api
- go - 基于 WebSocket 的 Yamux 上的 WebSocket 不工作
- sql-server - 如何将一张表上的多个 SQL 查询合并到一张报表中
- c# - 通过服务器资源管理器测试 Sql 连接,但不会在运行时连接
- python - Python - 使用函数拆分文本时出现 Pandas 错误
- javascript - 为什么这在我的网站上不显示为链接?