什么是 Vaex 函数将字符串解析为 datetime64,相当于 pandas to_datetime,允许自定义格式?

Posted

技术标签:

【中文标题】什么是 Vaex 函数将字符串解析为 datetime64,相当于 pandas to_datetime,允许自定义格式?【英文标题】:What is Vaex function to parse string to datetime64, which equivalent to pandas to_datetime, that allow custom format? 【发布时间】:2021-02-02 01:33:18 【问题描述】:

我将日期作为字符串(例如:2020 年 3 月 24 日),我想将其转换为 datetime64[ns] 格式

df2['date'] = pd.to_datetime(df1["str_date"], format='%m/%d/%Y')

在 vaex 数据帧上使用 pandas to_datetime 会导致错误:

ValueError: time data 'str_date' does not match format '%m/%d/%Y' (match)

我见过duplicate question。

df2['pdate']=df2.date.astype('datetime64[ns]')

但是,答案是类型转换。我的案例需要格式('%m/%d/%Y')将字符串解析为datetime64[ns],而不仅仅是类型转换。

解决方案:制作自定义函数,然后.apply

【问题讨论】:

【参考方案1】:

vaex可以使用apply函数进行对象操作,所以可以使用datetimenp.datetime64对每个日期字符串进行转换,然后应用。

import numpy as np
from datetime import datetime

def convert_to_datetime(date_string):
    return np.datetime64(datetime.strptime(str(date_string), "%Y%m%d%H%M%S"))

df['date']  = df.date.apply(convert_to_datetime)

【讨论】:

@ Joey Gao 我尝试在字符串列的格式(例如 '201904' 的 %Y%m )的类似问题上使用您的解决方案,并且它仅在列不包含空白单元格时才有效。我想知道如何修改您的代码以解决列中存在空字符串的问题。我也在使用 Vaex 数据集。 所以,我想出了一个解决方法,但仍然建立在@Joey Gao 解决方案之上。为了解决这个问题,我简单地对他创建的函数执行了以下操作: def convert_to_datetime(date_string): for date in date_string: if date == '': np.nan else: return np.datetime64(datetime.strptime(date_string, " %Y%m$d%H%M%S"))

以上是关于什么是 Vaex 函数将字符串解析为 datetime64,相当于 pandas to_datetime,允许自定义格式?的主要内容,如果未能解决你的问题,请参考以下文章

为什么vaex会改变包含句号的列名?

将 JSON 字符串解析为对象的最简单的 C# 函数是啥? [关闭]

为啥 C# 提前 7 小时解析 DateTime?

从 SQL Server 2005 中的用户定义函数中“捕获”错误

使用 XPath 将 URL 查询字符串解析为参数映射

parseInt() 函数的奇怪行为