如何将带有AM/PM的字符串强制转换为pandas中的时间戳
我有这样一行如何将带有AM/PM的字符串强制转换为pandas中的时间戳,pandas,type-conversion,timestamp,Pandas,Type Conversion,Timestamp,我有这样一行29-08-17 11.34.58.548518 PM,如何将其转换为熊猫中的时间戳: 这种方法不起作用 pd.to_datetime('29-08-17 11.34.58.548518 PM', '%d-%m-%Y %H.%M.%S', dayfirst = True) 您可以删除dayfirst,因为该信息包含在格式化字符串中。要包含整个日期字符串,包括.548518 PM,请使用%f和%p指令: pd.to_datetime('29-08-17 11.34.58.548518
29-08-17 11.34.58.548518 PM,
如何将其转换为熊猫中的时间戳:
这种方法不起作用
pd.to_datetime('29-08-17 11.34.58.548518 PM', '%d-%m-%Y %H.%M.%S', dayfirst = True)
您可以删除
dayfirst
,因为该信息包含在格式化字符串中。要包含整个日期字符串,包括.548518 PM
,请使用%f
和%p
指令:
pd.to_datetime('29-08-17 11.34.58.548518 PM', format='%d-%m-%y %I.%M.%S.%f %p')
返回:
Timestamp('2017-08-29 23:34:58.548518')
%f
代表微秒的十进制数,%p
代表语言环境中AM或PM的等效值(详见)此外,摆脱PM/AM不是一个选项:我们必须正确处理一切。最终解决方案:
pd.to\u datetime(pd.to\u datetime('29-08-17 11.34.58.548518 PM',格式='%d-%m-%y%I.%m.%S.%f%p'),格式='%d-%m-%y%H.%m.%m.%S')
是我遗漏了什么,还是你刚换了帖子?29-08-17 11.34.58.548518 PM转换为2017-08-29 11:34:58.548518
。但我们有PM,所以结果应该是2017-08-29 23:34:58.548518
没错,你应该使用%I
而不是%H
(编辑)