Vaex中类似pandas to_datetime的自定义格式转datetime64函数是什么?
解析字符串日期为datetime64[ns]的Vaex原生方案
我之前在处理Vaex数据帧的日期解析时也踩过同样的坑,完全理解你不想用apply自定义函数的心情——毕竟Vaex的优势就是向量化和内存高效,自定义apply会浪费这些特性。
其实Vaex本身就提供了和pandas类似的原生日期解析方法,不用绕弯路:
方法1:使用vaex.to_datetime()函数
这是最直接的方式,和pandas的pd.to_datetime用法几乎一致,支持指定format参数来匹配你的字符串格式:
import vaex # 假设你的Vaex数据帧是df,包含存储'3/24/2020'格式字符串的str_date列 df['date'] = vaex.to_datetime(df['str_date'], format='%m/%d/%Y')
方法2:利用字符串列的dt.strptime访问器
Vaex的字符串列自带dt访问器,其中的strptime方法可以直接按指定格式解析日期:
df['date'] = df['str_date'].dt.strptime('%m/%d/%Y', unit='ns')
为什么之前的pandas方法会报错?
你尝试用pd.to_datetime处理Vaex列时出错,是因为Vaex的列是延迟计算的虚拟列(不是直接的numpy数组),pandas的函数无法正确识别这种数据结构,导致把列对象当成了单个时间字符串来解析,从而抛出格式不匹配的错误。
验证结果
转换完成后,你可以查看列的类型确认:
print(df['date'].dtype) # 输出应为 datetime64[ns]
这两种方法都是Vaex原生的向量化操作,比自定义函数apply效率高得多,尤其适合处理大规模数据集时保持Vaex的内存友好特性。
内容的提问来源于stack exchange,提问作者Haha TTpro
相关产品推荐
相关产品推荐

