Dask调用to_datetime处理时间字符串报错与pandas用法不一致问题咨询
问题原因
dask.dataframe.to_datetime 面向批量分布式的序列化时间转换场景设计,即使官方文档标注参数支持str类型,实际仅接受可索引的序列类输入,你传入的单个字符串属于标量值,不属于可索引对象,因此触发does not support non-indexable arguments报错。
解决方法
场景1:仅需转换单个时间字符串
直接使用pandas的pd.to_datetime即可,Dask针对单值计算无性能优势,无需强行调用Dask接口:
import pandas as pd logtimestamp = '2021-10-19 09:13:25.091' ts = pd.to_datetime(logtimestamp) print(ts)
场景2:需在Dask数据处理链路中完成转换
将单个字符串包装为可索引的序列类型(列表、Dask Series等)即可正常调用:
import dask.dataframe as dd logtimestamp = '2021-10-19 09:13:25.091' # 方案1:包装为列表输入 ts_dd = dd.to_datetime([logtimestamp]) # 方案2:转换为Dask Series后处理 ds = dd.Series([logtimestamp]) ts_dd = dd.to_datetime(ds) # 触发实际计算获取结果 print(ts_dd.compute())
内容的提问来源于stack exchange,提问作者svamol
相关产品推荐
相关产品推荐

