我有闲置的数据框:
Timestamp real time
0 17FEB20:23:59:50 0.003
1 17FEB20:23:59:55 0.003
2 17FEB20:23:59:57 0.012
3 17FEB20:23:59:57 02:54.8
4 17FEB20:24:00:00 0.03
5 18FEB20:00:00:00 0
6 18FEB20:00:00:02 54.211
7 18FEB20:00:00:02 0.051
如何将列转换为datetime64?
有两件事让我变得充满挑战:
- 列
Timestamp, index4具有值:17FEB20:24:00:00,这似乎不是有效的日期时间(尽管它是由 SAS 程序输出的......)。 - 该列
real time不采用模式,并且似乎无法通过date_parser.
这就是我试图解决的第一列(Timestamp):
data['Timestamp'] = pd.to_datetime(
data['Timestamp'],
format='%d%b%y:%H:%M:%S')
但是由于索引 4 ( 17FEB20:24:00:00) 的值,我得到:
ValueError: time data '17FEB20:24:00:00' does not match format '%d%b%y:%H:%M:%S' (match)。如果我删除这条线,它确实有效,但我必须找到一种方法来解决它,因为我的数据集有数千行,我不能简单地忽略它们。也许有办法将其转换为第二天的零小时?
这是一个片段代码,用于创建上面的 dataFrame 示例,以获得一些时间来解决答案(如果需要):
data = pd.DataFrame({
'Timestamp':[
'17FEB20:23:59:50',
'17FEB20:23:59:55',
'17FEB20:23:59:57',
'17FEB20:23:59:57',
'17FEB20:24:00:00',
'18FEB20:00:00:00',
'18FEB20:00:00:02',
'18FEB20:00:00:02'],
'real time': [
'0.003',
'0.003',
'0.012',
'02:54.8',
'0.03',
'0',
'54.211',
'0.051',
]})
感谢你的帮助!