问题标签 [vaex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 从 Parquet 加载 Dataframe 并计算 RAM 中的最大值
我是 Dask 的新手,并使用行组将 pandas Dataframe 导出到 Parquet:
然后我尝试用 Dask 加载它,这似乎工作正常(?):
到目前为止,没有任何问题。但是当我调用x.max().compute()
它时,Dask 似乎将整个数据集加载到 RAM 中(至少 RAM 像疯了一样增加)然后崩溃。只看max()
:
根据 Dask 教程https://tutorial.dask.org/04_dataframe.html#Computations-with-dask.dataframe ,据我了解,这应该可以正常工作(?)
max()
当我尝试只调用一列时,它也会内存不足:
我做错了什么,还是它应该如何工作,我必须做一些不同的事情?
我现在还尝试使用distributed
系统并将客户端限制为 10GB,但 Dask 又吃掉了 24GB 的 RAM,并且只打印了一个警告,表明工作组完全超出了设置的内存限制:
vaex - Vaex:将更改应用于选择
使用 Vaex,我想选择行,修改该选择中某些列的值,并将更改应用于原始数据框。
我可以进行选择并更改该选择,但是如何将它们移植到原始数据框?
到目前为止,我想到的唯一解决方案是获得两个互补的选择,修改我感兴趣的一个,然后将它与另一个选择连接。有没有更直接的方法来做到这一点?
python - 使用 Dask 导入大型 CSV 文件
我正在使用 Dask 导入一个非常大的 csv 文件 ~680GB,但是,输出不是我所期望的。我的目标是只选择一些列(6/50),并可能过滤它们(我不确定,因为似乎没有数据?):
当我将它读入 Jupyter 时,我无法理解输出 - 控制台输出:
python - Vaex 使用 datetime64 列连接两个数据帧
我已经撞了半天了。在数据管道中,我想将新数据与现有数据集合并。我已经使用 Pandas .concat() 完成了这项工作,这工作正常,但在内存上有点沉重。由于 Vaex 有内存映射,我想我试一试,但我收到以下错误消息:
尝试连接两个数据帧时:
使用显示检查两个数据帧.dtype
是列都是 datetime64[ns] 类型。我使用 .to_datetime() 解析日期,它在后台使用 Numpy 的 datetime64。
有趣的是,在查看数据时,它们的打印方式不同:
和另一个:
所以它肯定看起来是否存在不匹配,但我不知道如何解决它。看起来 Vaex 读取时间戳的方式与 Pandas 不同。我想要实现的是合并两个具有最小内存占用的镶木地板文件。这意味着,由于我不想将其加载到内存中,因此不会更改 D1 数据帧。
我的版本:Python:3.9.5 Vaex:4.3.0 Pandas:1.3.0
任何帮助,将不胜感激。
python - VAEX groupby 日期时间列和另一列
我有一个时间序列的数据,我想使用 VAEX 来操作它。我需要按整数“物种”列分组,然后按分钟分组。我努力了
但它给出了一个错误“pyarrow.lib.ArrowNotImplementedError: Unsupported datetime64 time unit” 它可以分别管理两列上的分组,但是当组合时它会失败。有没有办法做到这一点?
python - 使用 vaex 连接两个数据框
我正在尝试加入两个全部由 vaex 导入的数据框。我认为这应该很简单,但我对vaex expressions
. 这是我所做的:
我得到了错误:
如何将列表转换为 vaex 表达式?
python - 如何使用 python 和 R 将较大的数据集(20GB csv 文件)转换为 hdf5 格式?
我想将较大的 csv 文件转换为 hdf5 格式。我正在使用 vaex 库,它只接受 hdf5 扩展来加载数据集。我还需要 R 中上述问题的解决方案。
python - 连接 2 个导致列问题的 vaex 数据帧
我在连接 2 个vaex数据帧时遇到了一些问题。当我连接两个数据框时,列名被忽略。
首先,我使用vaex读取了一个 CSV 文件
>>> import vaex as vx
>>> df = vx.read_csv("fl_name", header=None)
>>> df.column_names
['0', '1', '2', '3', '4', '5', '6']
然后我尝试将此数据框连接到现有数据框
>>> df_original
['A', 'B', 'C', 'D', 'E', 'F', 'G']
为了实现这一点,我将新的数据框列名与现有的列名匹配
>>> df.column_names = df_original.column_names
>>> df_original.concat(df)
当我检查生成的数据框列时,我得到了
['A', 'B', 'C', 'D', 'E', 'F', 'G', '0', '1', '2', '3', '4', '5', '6']
有什么办法可以解决这个问题并使vaex尊重列名?
python - 关联 2 个熊猫数据框的最 Pythonic 方式是什么?基于键值
所以,我在一个地方工作,在这里我使用了很多 Python (Pandas),数据越来越大,上个月我处理了几十万行,几周后我处理了几百万行现在我正在处理 4200 万行。我的大部分工作只是获取一个数据框,对于每一行,我需要在另一个数据框中查阅其“等效”并处理数据,有时只是合并,但更多时候我需要使用等效数据执行功能。在有几十万行的日子里,只使用 apply 和一个简单的过滤器就可以了,但现在它非常慢. 最近我改用 vaex,它在各个方面都比 pandas 快得多,但经过一段时间的搜索,我发现 apply 是最后一个资源,只有在你没有其他选择的情况下才应该使用。那么,还有其他选择吗?我真的不知道
一些代码来解释我是如何做到这一点的:
正如我所说,这不是唯一的用例。