首页 > 解决方案 > 如何将字符串转换为日期时间?

问题描述

我对 Python 很陌生,遇到了一个问题。

我有一个数据框,其中一列是航班的起飞时间。这些时间以下列格式给出:1100.0、525.0、1640.0 等。

这是一个熊猫系列,我想将其转换为日期时间系列,例如:S = [11.00, 5.25, 16.40,...]

我已经尝试过的:

S = [str(x) for x in S]
S =  [datetime.strptime(x,'%H%M.%S') for x in S]

但是由于它们的格式不完全相同,所以它不起作用

S =  [parser.parse(x) for x in S]

我得到了错误:

 'Unknown string format'
S= pd.to_datetime(S)

没有给我预期的结果

感谢您的回答!

标签: python

解决方案


由于它是数据框 (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)

推荐阅读