问题标签 [modin]

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 投票
1 回答
207 浏览

python - 根据 pandas Python 中另一个数据帧的条件从一个数据帧中删除行

我有两个 pandas 数据框,在 python 中包含数百万行。我想根据三个条件从包含以秒为单位的数据帧的单词的第一个数据帧中删除行:

  1. 如果单词连续出现在句子的开头
  2. 如果该单词连续出现在句子的末尾
  3. 如果单词连续出现在句子的中间(确切的单词,而不是子集)

例子:

第一个数据框:

第二个数据框:

预期输出:

请注意,我在两个数据框中都有数百万条记录,如何以最有效的方式处理和导出?

我试过了,但需要很长时间

谢谢

0 投票
1 回答
1199 浏览

python - modin pandas read_parquet() 在 ETag KeyError 尝试从 s3 读取分区镶木地板时失败

我从 pandas 创建了一个数据框,并使用 to_parquet(...) 直接写入 s3。

论据是:

当我使用 pandas 时pandas.read_parquet(url),数据框加载正常。

但是当我使用时modin.pandas.read_parquet(url),我得到以下错误:

以下是我的版本:

0 投票
1 回答
289 浏览

python - 为什么我使用 modin.pandas 比使用 Pandas 需要更长的时间 [ray]

我只是一个喜欢用 Python 处理数据的 Python 新手。

当我能够使用 Python 的代表性数据工具 Pandas 时,它似乎能够非常快速地在 Excel 上工作。

但是,我有点失望地看到检索 470,000 行的数据(.xlsx)需要超过 1 到 2 分钟,结果我发现使用 modin 和 ray(或 dask)可以更快地运行。

在学习了如何简单地使用它之后,我将它与仅使用 Pandas 进行了比较。(这次是100M行数据,大约5GB)

但是写 Pandas 只用了 1 分 3 秒,而写 modin [ray] 却用了 1 分 9 秒。我很失望地看到它需要更长的时间,而不仅仅是一个小的差异。

我怎样才能比 pandas 更快地使用 modin?groupby 或 merge 之类的复杂操作?单纯读取数据有没有区别?

别人用modin读取数据比较快,是不是我电脑设置有问题?我想知道为什么。

在此处输入图像描述

记下提示安装的方法,以备不时之需。

0 投票
0 回答
301 浏览

python - 在 Anaconda Navigator 和 Anaconda Prompt 中 Pandas 版本不同

我尝试在我的 jupyter 笔记本中导入 modin。当我运行单元格时

我收到以下警告

我尝试使用 更新我的熊猫conda install pandas=1.2.4,但没有用,命令提示符卡在“解决环境”阶段很长时间,我不得不手动停止。- 附上Anaconda Prompt Install的屏幕截图。我用过pip install pandas==1.2.4,有效。现在我的 anaconda 提示显示 pandas 版本为 1.2.4,但我的 anaconda 导航器显示 1.2.3。附上Anaconda NavigatorAnaconda Prompt的截图。如何解决此问题/使用 modin 而没有任何警告?任何帮助将不胜感激,谢谢!

0 投票
0 回答
100 浏览

python-3.x - 如何将莳萝文件中的熊猫对象转换为更高的熊猫版本?

我有一些包含熊猫数据框的莳萝文件。这些数据框是使用 pandas 1.2.4 创建的。现在我需要使用 pandas 1.3(modin 需要)。

在使用 pandas 1.3 的脚本中,我需要加载这些 dill 文件。这是不可能的,因为 pandas 1.3 无法处理反序列化或解释这些旧对象。我得到这个例外:

TypeError: __cinit__() takes at least 2 positional arguments (0 given)

我知道pandas.read_pickle,它应该为保存旧版本熊猫对象的泡菜文件解决这个问题(即提供向后兼容性)。但是我被 dill 困住了,因为除了数据框之外,文件还包含只有 dill 可以序列化的自定义类。

因此,我正在寻找一种方法来转换旧的 pandas 对象并重新保存 dill 文件,以便能够使用 pandas 1.3 加载它们。有没有办法做到这一点?

谢谢!

编辑:我不希望反汇编文件内容,例如我有一个自定义对象,其属性包含数据框。我可能可以使用 pandas 1.2.4 加载文件,将所有 pandas 对象存储在单独的 pickle 文件中,并将自定义对象存储在 dill 文件中。然后切换到pandas 1.3,用dill加载pickle文件,用pandas.read_pickledill加载dill文件,重新组装对象层次,用dill保存。所以我不得不将我的问题改写为:有没有更直接、更不容易出错的方法呢?

0 投票
1 回答
49 浏览

python - 我可以设置 modin 的并行 read_sql 函数的隔离级别吗?

我有一些 python 代码,我试图使用 sqlalchemy 和 modin 从我的数据库中并行读取未提交的代码。我尝试将函数调用为:df = pd.read_sql("select * from my_table", uri_string, params={'isolation_level': 'READ UNCOMMITTED'}). 但是,我看到生成的查询在没有隔离级别的情况下提交到我的数据库。有没有人能够在调用 read_sql 之前在不创建 sqlalchemy 引擎的情况下注入隔离级别?

编辑:与 pandas 不同,modin 的实现允许 read_sql 并行运行。该实现的一部分意味着我编写的任何查询都将被包装到几个子查询中,例如select * from (select * from my_table) limit 100 offset 200;. 因此,在不调整此实现的情况下,语句级隔离是不可能的。此外,此实现需要一个 sqlalchemy URI 字符串,而不是可以由许多工作人员序列化的引擎或连接。因此,如果要从连接字符串设置隔离级别,我需要知道如何在 URI 字符串中注入隔离级别参数。

0 投票
1 回答
73 浏览

python - 将 python 响应转换为 Json 响应

我已经编写了一个 python 代码,它可以自动读取多个扩展的数据帧,并打印 DF 的前 100 行以及它的列的类型,并且可以在同一个简单函数中添加更多东西,我目前正在研究以 JSON 格式做出响应,但仍然无法这样做,因为这是我第一次使用 Json API,因为我比编程更擅长数据分析/科学 感谢您的帮助和建议

0 投票
1 回答
137 浏览

oracle - 如何为 oracle modin read_sql 传递 sqlalchemyconnection 字符串

我使用这个字符串得到了这个错误

'oracle://username:password@server:1521/SID'

我也尝试使用 cx_Oracle 出现同样的错误

我还尝试直接传递 con 字符串,例如:

ORA-12170: TNS: 发生连接超时

0 投票
1 回答
83 浏览

python - 使用 modin 和 Ray 将数据集写入多个目录会莫名其妙地停顿

问题

我正在尝试使用 ray、modin(带有 ray 后端)和 python 对多个目录执行 IO 操作。文件写入暂停,内存和磁盘使用量根本没有变化,程序被阻塞。

设置

我有一个射线演员这样设置

主要逻辑结构如下图,

我尝试使用以下方法装饰该cache_dataset()方法@remote并调用该方法,

输出

文件写入没有错误,但程序暂停执行。

假设

  1. 我认为光线引擎在所有任务完成执行之前就停止了。我不知道如何证明或验证这个假设。我也知道 ray.get 应该阻止执行,直到所有任务都完成执行。
  2. 某处存在“类似”的死锁情况。

参考

  1. https://docs.ray.io/en/latest/actors.html
  2. https://towardsdatascience.com/writing-your-first-distributed-python-application-with-ray-4248ebc07f41
0 投票
0 回答
108 浏览

pandas - 按关键字列表过滤行

我有一个关键字列表(推广、想要、总是)。有时它可能不仅仅是作为关键字的单词。前任。“想要”我使用的数据集是training.1600000.processed.noemoticon.csv,可以在这里找到:https ://www.kaggle.com/kazanova/sentiment140

我需要知道列表中的哪个关键字出现在'Text'列的每一行中,无论它是整个字符串(例如"always")还是子字符串(例如"alwaysfurst"),不区分大小写。例如,可以仅针对一行“促进” ,或者针对另一行同时“想要”和“始终”。所以我必须创建一个新列,该列应该包含每个创建的关键字(出现一次)。我只保留至少有一个关键字的行

这是代码:

要检查新的df是否只包含列表中唯一的关键字组合,在“long”列上,我使用.value_counts()

没关系。

我尝试通过用“”更改第一行来使用Modinimport modin.pandas as pd ,但我得到了更长的时间(几乎是两倍)和一些警告

我放弃了 Modin,我试图在“应用”之前插入 swifter ,但我得到了"AttributeError: 'Series' object has no attribute '_is_builtin_func'"

有没有办法改进代码以获得更好的性能?或者另一种方式来做到这一点?(也许是 Vaex?)