1

我正在将 Python 中的 Vaex 库用于一个项目;我对 Vaex 还是很陌生,所以如果这是初级的,我很抱歉。我遇到了数据类型转换的问题。我的一列“Paid_at”的数据类型为 str,它应该是 DateTime。 df_paid.info

到目前为止,我所做的是从我的 df 中删除 na 以及(尝试)使用 pandas 的 to_datetime() 来转换列,但它不起作用。这在 pd 数据框中有效,但我做错了,因为我收到以下错误

df_paid['Paid_at'] = pd.to_datetime(df['Paid_at'], errors='coerce')

-------------------------------------------------- ------------------------- ValueError Traceback(最近一次通话最后一次)在----> 1 df_paid['Paid_at'] = pd.to_datetime (df['Paid_at'], errors='coerce')

F:\Anaconda3\lib\site-packages\vaex\dataframe.py in setitem (self, name, value) 4431 self.add_column(name, value)
4432 else: -> 4433 self.add_virtual_column(name, value) 4434 else : 4435 raise TypeError(' setitem只接受字符串作为参数,而不是 {}'.format(type(name)))

F:\Anaconda3\lib\site-packages\vaex\dataframe.py in add_virtual_column(self, name, expression, unique) 3249
'# 我们重写所有现有的表达式(包括向下传递的表达式参数) 3250 self._rename(name,重命名)-> 3251 表达式 = _ensure_string_from_expression(表达式)3252 3253 名称 = vaex.utils.find_valid_name(名称,使用 = [] 如果不是唯一的,则 self.get_column_names())

F:\Anaconda3\lib\site-packages\vaex\utils.py in _ensure_string_from_expression(expression) 764 return expression.expression 765 else: --> 766 raise ValueError('%r 不是字符串或表达式类型,而是 %r ' % (表达式, 类型(表达式))) 767 768

ValueError: NaT 不是字符串或表达式类型,而是 <class 'pandas._libs.tslibs.nattype.NaTType'>

我对如何将 Paid_at 列变为可以聚合的 DateTime 有点迷茫。

4

1 回答 1

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

在这里解决了:https ://github.com/vaexio/vaex/pull/440

于 2020-09-26T09:23:26.890 回答