如何在Pandas中解析含异常字符的日期时间字符串并保留原格式?
解决Pandas解析含非标准'D'分隔符时间戳的问题
首先,你需要在格式串中明确包含那个非标准的'D'字符——Pandas的to_datetime方法会严格匹配格式串与输入字符串的结构,只要格式串和实际时间戳的结构完全对应,就能完成解析,不需要替换'D'。
具体操作
- 假设你的时间戳格式为
%Y-%m-%dD%H:%M:%S:%f(例如2024-05-20D14:30:00:123456),直接使用该格式串解析即可。 - 示例代码:
import pandas as pd # 模拟待处理数据 timestamps = ['2024-05-20D14:30:00:123456', '2024-05-21D09:15:00:654321'] df = pd.DataFrame({'raw_timestamp': timestamps}) # 用包含'D'的格式串解析 df['parsed_datetime'] = pd.to_datetime(df['raw_timestamp'], format='%Y-%m-%dD%H:%M:%S:%f') print(df)
错误原因说明
之前出现TypeError: Unrecognized value type: <class 'str'>,本质是因为你使用的格式串%Y-%m-%d %H:%M:%S:%f和实际时间戳结构不匹配——实际是'D'分隔日期与时间,而格式串中用的是空格,导致Pandas无法识别字符串的时间格式,进而抛出类型相关错误。
额外提示
如果时间戳中'D'的位置有其他变化,只需对应调整格式串,将'D'作为固定字符写入格式串即可,Pandas会将其视为时间格式的一部分进行匹配。
内容的提问来源于stack exchange,提问作者jolene
相关产品推荐
相关产品推荐

