首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >添加新列后,SFrame操作速度变慢

添加新列后,SFrame操作速度变慢
EN

Stack Overflow用户
提问于 2016-12-12 17:09:07
回答 1查看 77关注 0票数 1

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

最后,我得到了一个包含4列的SFrame,其中unique_identifier包含所有匹配订单的最旧订单的user_id。我是通过带有λ函数的.apply方法来做这件事的。在我的笔记本电脑上,整个过程只需要几秒钟。但是,在该过程完成后,SFframe将变得极其缓慢且难以管理,以至于SFrame.save似乎永远都要耗费时间。

看起来我添加unique_identifier的过程阻塞了内存或者类似的东西。然而,这个问题与sframe大小无关。如果我将其限制为只有10行,问题仍然存在。我做错了什么?

下面是我的方法

代码语言:javascript
复制
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'])
EN

Stack Overflow用户

发布于 2018-04-23 03:06:36

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

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41097396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档