在Pandas Series列中用strftime处理时间并生成指定格式NumPy数组
解决方案:处理Pandas时间列转换及NumPy数组生成
错误原因
你遇到的属性错误是因为strptime是Python标准库datetime模块的方法,仅支持处理单个字符串,无法直接作用于Pandas Series对象。Pandas有专门的批量时间处理工具,无需使用原生strptime。
分步解决代码
1. 将第0列转换为datetime类型
使用Pandas内置的pd.to_datetime()函数批量转换整列时间字符串:
import pandas as pd import numpy as np # 转换第0列为datetime类型,指定匹配原数据的格式 df[0] = pd.to_datetime(df[0], format='%Y-%b-%d/%H:%M:%S.%f')
format参数严格匹配你的时间字符串结构:年-月份缩写-日/时:分:秒.毫秒。
2. 生成仅保留时分秒的NumPy数组
根据你的需求,分两种情况处理:
需求1:获取时间类型的NumPy数组
提取datetime中的时间部分(仅保留时:分:秒),转为NumPy数组:time_np_array = df[0].dt.time.to_numpy()注:生成的数组元素是
datetime.time类型,仅包含时分秒信息。需求2:获取格式化字符串的NumPy数组
若需要'%H:%M:%S'格式的字符串数组,使用dt.strftime():# 注意:秒的格式符是大写%S,小写%s代表时间戳 time_str_np_array = df[0].dt.strftime('%H:%M:%S').to_numpy()
内容的提问来源于stack exchange,提问作者user21064805
相关产品推荐
相关产品推荐

