Python中文
首页
教程
问答
标签
搜索
登录
注册
如何在DataFram上加速Python apply函数
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个相当大的数据集,我试图计算每个文档的情绪。我使用维德计算情绪与以下代码,但这个过程需要超过6小时运行。我正在寻找任何加快这一进程的方法。你知道吗</p> <pre><code>from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer analyzer = SentimentIntensityAnalyzer() %time full_trans['bsent'] = full_trans['body_text'].apply(lambda row: analyzer.polarity_scores(row)) </code></pre> <p>任何想法都是很好的,因为像这样在行中循环是非常低效的。你知道吗</p> <p>作为一个例子,我已经在100个观察值的小样本上运行了我的代码。替代形式代码的结果如下。我原来的代码是第一个,建议更改为列表理解是第二个。奇怪的是,这两种方法之间的性能没有提高。你知道吗</p> <pre><code>transtest = full_transx.copy(deep=True) from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer analyzer = SentimentIntensityAnalyzer() %time transtest['bsent'] = [analyzer.polarity_scores(row) for row in transtest['body_text']] %time full_transx['bsent'] = full_transx['body_text'].apply(lambda row: analyzer.polarity_scores(row)) </code></pre> <p>挂壁时间:4min 11s</p> <p>挂壁时间:3min 59s</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我假设<code>full_transx['body_text']</code>是一系列字符串。在这种情况下,在底层numpy数组上循环以构建列表通常效率更高:</p> <pre><code>full_trans['bsent'] = [analyzer.polarity_scores(row) for row in full_trans['body_text'].values] </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
5 回答
如何添加表示整数的擦边字符串?
3 回答
如何添加要在Bokeh中使用的新font.ttf文件?
4 回答
如何添加要显示的矩阵XY轴编号和XY轴
4 回答
如何添加计数?
10 回答
如何添加计数器函数?
1 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
8 回答
如何添加计数器来跟踪while循环中的月份和年份?
4 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
7 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
10 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
8 回答
如何添加评论拉梅尔亚姆
1 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
6 回答
如何添加谷歌地点自动完成到Flask?
5 回答
如何添加超时、python discord bot
6 回答
如何添加超过1dp的检查
7 回答
如何添加距离方法
1 回答
如何添加跟随游戏的敌人精灵
5 回答
如何添加路径以便python可以找到程序?
3 回答
如何添加身份验证/安全性以使用happybase访问HBase?
8 回答