Vaex 使用 datetime64 列连接两个数据框

问题描述

我已经撞了半天了。在数据管道中,我想将新数据与现有数据集合并。我已经使用 Pandas .concat() 完成了这项工作,这工作正常,但内存有点大。由于 Vaex 有内存映射,我想尝试一下,但收到以下错误消息:

TypeError: Cannot promote timestamp[us] and timestamp[ns] to a common type

尝试连接两个数据帧时:

vx.concat([d1,vx.from_pandas(d2)])

使用 .dtype 检查两个数据框显示列都是 datetime64[ns] 类型。我使用 .to_datetime() 解析日期,它在后台使用 Numpy 的 datetime64。

有趣的是,在查看数据时,它们的打印方式不同:

In [227]: vx.from_pandas(d2).timestamp
Out[227]:
Expression = timestamp
Length: 248 dtype: datetime64[ns] (column)
------------------------------------------
  0  2021-06-24 12:13:13.653000000
  1  2021-06-24 20:39:07.993000000
  2  2021-06-24 22:10:43.103000000
  3  2021-06-24 08:20:52.563000000
  4  2021-06-24 13:09:57.723000000
               ...
243  2021-06-24 20:18:34.453000000
244  2021-06-24 21:21:19.413000000
245  2021-06-24 12:07:58.853000000
246  2021-06-24 12:08:00.383000000
247  2021-06-24 07:44:02.420000000

一个

In [228]: d1.timestamp
Out[228]:
Expression = timestamp
Length: 33,152 dtype: datetime64[ns] (column)
---------------------------------------------
    0  2021-01-01 22:41:08.537000
    1  2021-01-01 22:08:10.983000
    2  2021-01-01 22:07:02.937000
    3  2021-01-01 22:05:46.773000
    4  2021-01-01 22:05:15.980000
               ...
33147  2021-06-24 20:18:34.453000
33148  2021-06-24 21:21:19.413000
33149  2021-06-24 12:07:58.853000
33150  2021-06-24 12:08:00.383000
33151  2021-06-24 07:44:02.420000

所以它肯定看起来是否存在不匹配,但我不知道如何解决它。看起来 Vaex 读取时间戳的方式与 Pandas 不同。我想要实现的是合并两个具有最小内存占用的镶木地板文件。这意味着,不会更改 D1 数据帧,因为我不想将其加载到内存中。

我的版本: 蟒蛇:3.9.5 Vaex:4.3.0 熊猫:1.3.0

任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...