python - 如何将字符串转换为日期时间?
问题描述
我对 Python 很陌生,遇到了一个问题。
我有一个数据框,其中一列是航班的起飞时间。这些时间以下列格式给出:1100.0、525.0、1640.0 等。
这是一个熊猫系列,我想将其转换为日期时间系列,例如:S = [11.00, 5.25, 16.40,...]
我已经尝试过的:
- 将我的对象转换为字符串:
S = [str(x) for x in S]
- 使用 datetime.strptime :
S = [datetime.strptime(x,'%H%M.%S') for x in S]
但是由于它们的格式不完全相同,所以它不起作用
- 使用 dateutil 中的解析器:
S = [parser.parse(x) for x in S]
我得到了错误:
'Unknown string format'
- 使用熊猫日期时间:
S= pd.to_datetime(S)
没有给我预期的结果
感谢您的回答!
解决方案
由于它是数据框 (A series
) 中的列,因此在转换时保持这种状态应该可以正常工作。
S = [1100.0, 525.0, 1640.0]
se = pd.Series(S) # Your column
# se:
0 1100.0
1 525.0
2 1640.0
dtype: float64
setime = se.astype(int).astype(str).apply(lambda x: x[:-2] + ":" + x[-2:])
这会将浮点数转换为格式正确的字符串:
0 11:00
1 5:25
2 16:40
dtype: object
然后你可以简单地做:
df["your_new_col"] = pd.to_datetime(setime)
推荐阅读
- scripting - 如何轻松地将 Debian 脚本转换为 RPM 脚本?
- c++ - 为什么通用参考不保持其论点的恒定性?
- javascript - 使用 GET 方法的 ExpressJS PATCH 请求重定向
- google-cloud-platform - 在 Google Compute Engine VM 实例中使用自定义 .sh 文件安装 Odoo
- html - 有很多嵌套元素不好吗?
- python - 在 Python 中使用组合而不是继承来实现多态性的正确方法
- java - 从实用程序类(非活动)访问房间数据库的 NullPointerException
- c++ - 当我将 cin 用于两个输入时,如何接收一个输入?
- javascript - 你如何创建一个输出一些逻辑的javascript模块
- c# - 如何从具有条件的复杂字符串内容中捕获特定数据?