如何将DataFrame中不规则时间字符串转换为Python可处理的时间戳?
解决方法
错误原因
pd.Timestamp 是用来创建单个时间戳对象的工具,无法直接接收整个 pandas Series 作为输入,这就是触发 TypeError 的原因。处理整列时间字符串,应该用专门的批量转换函数 pd.to_datetime。
正确转换步骤
你的时间字符串格式是 YYYY.MM.DD HH:MM:SS.FFFFFFF(中间用D分隔日期和时间),需要给 pd.to_datetime 指定匹配的格式字符串,确保精准转换:
import pandas as pd # 转换datetime列 df['datetime'] = pd.to_datetime(df['datetime'], format='%Y.%m.%dD%H:%M:%S.%f')
格式字符串说明
%Y: 4位年份(如2022)%m: 2位月份(如11)%d: 2位日期(如02)D: 固定分隔字符(直接写在格式串里)%H: 24小时制小时(如12)%M: 分钟(如00)%S: 秒(如00)%f: 微秒/纳秒部分(你的字符串是9位,pandas会自动处理纳秒精度)
验证转换结果
转换完成后,你可以用 df['datetime'].dtype 查看类型,会显示为 datetime64[ns](支持纳秒精度),此时就可以正常进行时间戳的各种操作,比如提取时间分量、计算时间差等。
内容的提问来源于stack exchange,提问作者vicefreak04
相关产品推荐
相关产品推荐

