问题标签 [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.

0 投票
0 回答
159 浏览

python - 即使在 Vaex 和内存崩溃中,将 sparsematrix 转换为 hdf5 也需要太多时间

我有一个包含文本数据和数字特征的数据框。我已经对文本数据进行了矢量化处理,并计划将其与剩余的数值数据连接起来,以便在机器学习算法上运行。

我使用 TIDF 对文本数据进行了矢量化,如下所示:

text_vect_df.shape:250000 x 9300

我已将 text_vect_df 转换为 csv 文件并使用 vaex 将其转换为 hdf5,如下所示。Vaex 必须与 hdf5 格式一起工作。

text_vectorized.csv4GB。vaex.from_csv()花费了太多时间并且内存正在崩溃(8GB RAM)。

我在我的 Jupyterhub(带有外部 GPU)中尝试了它的形状,text_vect_df.shape 200000 x 9300.它以每个 7GB 的块下载,并且阅读它需要太多时间。

问题一:hdf5文件怎么比原来的csv5文件大?不应该更小吗?问题 2:如果较小的大小失败/崩溃,我如何存储 950000 x 10000 大小的数据帧?

我读过关于 vaex 的文章,它看起来真的很酷,因为计算发生在几秒钟内。我很想继续处理这个问题,但我被困住了。我试过了。不如 Vaex 酷。

已经尝试过的解决方案:

  1. Pandas 的 to_hdf 不应该用于存储稀疏矩阵,因为https://vaex.readthedocs.io/en/latest/faq.html

当使用 pandas .to_hdf 方法时,输出的 HDF5 文件具有基于行的格式。另一方面,Vaex 期望基于列的 HDF5 文件

  1. 如果没有 dask 或 vaex,内存在运行 KNN、SVM 或任何 ML 算法时会崩溃。
  2. 尝试使用 dask,没有运气,工人在客户端本地集群中被杀死。
  3. 有了 Vaex,无法前进
0 投票
1 回答
511 浏览

python - vaex filter an dataframe using mask from anther series

I want to use a mask from series x to filter out a vaex dataframe y. I know how to do this in pandas and numpy. In pandas it's like:

The result is like:

But in vaex, the following code doesn't work.

The result is empty:

It seems that vaex doesn't have the same index concept as pandas and numpy. Although the two dataframe is equal shape, array y can't use mask x.x==1.

Is there any way to achieve the equavilent result as pandas does please?

Thanks

0 投票
1 回答
73 浏览

python - 复制数据框行并在同一数据框上替换

我有一个数据框,其中有 2 条值很少的记录,我想用更多值的其他记录替换这些记录,制作一个副本。有谁知道如何在 pandas 或 vaex 上做到这一点?

图片

想将值 148 替换为值 140 有人帮忙吗?

编辑:我的数据框是这个

图片

我想用 day_of_week = 140 的值替换 day_of_week = 148 的所有值,因为 (day_of_week = 148) 有 1000 条记录, (day_of_week = 140) 有 200000 条记录

我想复制所有行 day_of_year == 140 并替换所有行 day_of_year == 148

0 投票
1 回答
504 浏览

python - 重复行并更改列值(python vaex)

我有这个数据框

数据框

我想复制 ( ) 的所有行,这些重复的行用 148day_of_year == 140替换列。day_of_year

也就是说,复制行并同时替换 day_of_year 列并给出值 148

我正在使用 vaex

有人能帮我吗?

0 投票
4 回答
1235 浏览

python - 如何快速比较两个文本文件并获得唯一行?

我有 2 个文本文件 (*.txt),其中包含以下格式的唯一字符串:

第一个文件包含5000 万行 (4.3 GB),第二个文件包含100 万行 (112 MB)。一行包含 40 个字符、分隔符 : 和另外 45 个字符。

任务:获取两个文件的唯一值。也就是说,您需要一个csv 或 txt文件,其中的行位于第二个文件中,而哪些行不在第一个文件中。

我正在尝试使用vaexVaex)来做到这一点:

结果,我得到了具有唯一行值的result.csv文件。但是验证过程需要很长时间。此外,它使用所有可用的 RAM 和所有处理器资源。如何加速这个过程?我究竟做错了什么?有什么可以做得更好?是否值得使用其他库(pandas,dask)进行此检查,它们会更快吗?


UPD 10.11.2020 到目前为止,我没有发现比以下选项更快的东西:

UPD 11.11.2020:感谢 @m9_psy 提供提高性能的提示。它真的更快!目前,最快的方法是:

有没有办法进一步加快这个过程?

0 投票
0 回答
104 浏览

python - vaex ValueError:找不到类(AggSum_object),似乎不支持对象

进行聚合时出现以下错误

dfv = vaex.from_csv(_path + 'sample.csv') _monetary = dfv.groupby('CusUnique',agg=vaex.agg.sum('Trn_AMT'))

返回。

“ValueError:找不到类(AggSum_object),似乎不支持对象”

0 投票
1 回答
1494 浏览

python - 使用 Vaex 读取 Parquet 文件

我正在尝试使用 Vaex 将 Parquet 文件中的一些数据读入 python。

这是我使用该vaex.open函数得到的输出。

数据帧的长度是正确的,但我不明白这与什么1048576有关。我找到了关于读取 hdf5 文件的先前答案,但它似乎与我的问题无关。数据最初是从 csv 文件中读取的,然后使用 pyarrow 导出到 parquet。

谁能详细说明问题是什么以及如何解决?

0 投票
3 回答
1827 浏览

pandas - 在 Pandas 中创建数据框 - 读取 Parquet 文件时出现内存不足错误

我有一台具有 8 GB RAM 和 5 个内核的 Windows 10 机器。

我创建了一个用 gzip 压缩的镶木地板文件。压缩后的文件大小为 137 MB。当我尝试通过 Pandas、dask 和 vaex 读取 parquet 文件时,我遇到了内存问题:

熊猫

黎明

维克斯

由于 Pandas /Python 旨在提高效率,并且 137 mb 文件低于标准大小,是否有任何推荐的方法来创建高效的数据帧?像 Vaex、Dask 这样的库声称非常高效。

0 投票
1 回答
190 浏览

vaex - 带有 vaex 的交互式大图

我在 Windows 10 上使用 python 3.8;试图制作一个包含大约 700M 点的图,声波分析。此处:具有约 2000 万个样本点和千兆字节数据的交互式大图

强烈推荐 Vaex。我正在尝试使用 Vaex 教程中的示例,但图表没有出现。我在互联网上找不到一个很好的例子。

Vaex 文档没有提到应该使用 pyplot.show() 来显示。Plot1d 绘制直方图。如何绘制刚刚连接的点?

0 投票
2 回答
1604 浏览

python - Vaex:如何向 Vaem DataFrame 添加/追加行

如何将数据添加到 Vaex DataFrame?

我可以看到有add_column(),但没有add/append_row()

我希望使用 Vaex 而不是 Pandas。