为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在处理DataFrame时我的NLTK函数变慢?

为什么在处理DataFrame时我的NLTK函数变慢?

炎炎设计 2019-12-06 14:58:08
我试图通过一个数据集中的百万行运行一个函数。我从数据框中的CSV读取数据我使用删除列表删除不需要的数据我通过for循环中的NLTK函数传递它。码:def nlkt(val):    val=repr(val)    clean_txt = [word for word in val.split() if word.lower() not in stopwords.words('english')]    nopunc = [char for char in str(clean_txt) if char not in string.punctuation]    nonum = [char for char in nopunc if not char.isdigit()]    words_string = ''.join(nonum)    return words_string现在,我使用for循环调用上述函数,以通过百万条记录运行。即使我在具有24核cpu和88 GB Ram的重型服务器上,我也看到循环占用了太多时间,并且没有使用那里的计算能力我正在这样调用上面的函数data = pd.read_excel(scrPath + "UserData_Full.xlsx", encoding='utf-8')droplist = ['Submitter', 'Environment']data.drop(droplist,axis=1,inplace=True)#Merging the columns company and detailed descriptiondata['Anylize_Text']= data['Company'].astype(str) + ' ' + data['Detailed_Description'].astype(str)finallist =[]for eachlist in data['Anylize_Text']:    z = nlkt(eachlist)    finallist.append(z)当我们有几百万条记录时,上面的代码可以正常工作,只是太慢了。它只是excel中的示例记录,但实际数据将存储在DB中,该数据库将运行数亿。有什么办法可以加快操作,以便更快地通过函数传递数据-而是使用更多的计算能力?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 280 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信