Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将带有AM/PM的字符串强制转换为pandas中的时间戳_Pandas_Type Conversion_Timestamp - Fatal编程技术网

如何将带有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
(编辑)