gpt4 book ai didi

python - 添加新列后 SFrame 操作速度变慢

转载 作者:行者123 更新时间:2023-11-30 09:20:35 25 4
gpt4 key购买 nike

我正在使用 graphlab 和 sframes 在 ipython 笔记本中构建重复订单报告。我有一个 csv 文件,其中包含大约 10 万行数据,其中包含 user_iduser_emailuser_phone。我添加了一个名为唯一标识符的新列。对于每一行,我都会遍历所有其他行以查看 user_iduser_emailuser_phone 是否与当前记录匹配。如果唯一标识符不为空并且存在匹配项,我会将当前记录中的 user_id 分配到每个匹配记录的 unique_identifier 槽中。

最后,我得到一个包含 4 列的 SFrame,其中 unique_identifier 包含所有匹配订单的最早订单的 user_id。我通过带有 lambda 函数的 .apply 方法来执行此操作。在我的笔记本电脑上,整个过程只需几秒钟。然而,该过程完成后,SFframe 变得极其缓慢且难以管理,以至于 SFrame.save 似乎永远需要花费时间。

看来我添加unique_identifier的过程会堵塞内存或类似的东西。但是,该问题与 sframe 大小无关。如果我将其限制为仅 10 行,问题仍然存在。我做错了什么?

这是我的方法

def set_unique_identifier():
orders['unique_identifier'] = ''
orders['unique_identifier'] = orders.apply(lambda order:
order['unique_identifier'] if order['unique_identifier'] else
orders[(orders['user_email']==order['user_email']) |
(orders['phone'] == order['user_phone'])][0]['user_id'])

最佳答案

不要在整个 sframe 上使用 apply,而是在 SArray 上使用它,这样应该会加快一点

关于python - 添加新列后 SFrame 操作速度变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41097396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com