用 python 给数据打标签,500 万条数据怎样提高效率?
ringa_lee
ringa_lee 2017-04-17 16:52:14
0
4
545
ringa_lee
ringa_lee

ringa_lee

全部回覆(4)
迷茫

所以說你真的就把pandas 當讀取資料的工具了嗎..

增加了一列is_tobacco 作為你說的標記

filter_query 回傳含有這些字的清單 效率有一定提升

其次你可以分割後用 multiprocessing 執行 這個加速起來不只一點半點

import pandas as pd
word = pd.read_table('test.txt', encoding = 'utf-8', names = ['query'])

def signquery(word):
    tobacco = [u'烟', u'白沙', u'黄金叶', u'利群', u'南京九五', u'黄鹤楼软',  u'黄鹤楼硬', u'娇子', u'钻石荷花', u'玉溪', u'七匹狼尚品',  u'七匹狼软灰']
    word['is_tobacco'] = word['query'].apply(lambda name:name in tobacco)
    return word

def filter_query(word):
    tobacco = [u'烟', u'白沙', u'黄金叶', u'利群', u'南京九五', u'黄鹤楼软',  u'黄鹤楼硬', u'娇子', u'钻石荷花', u'玉溪', u'七匹狼尚品',  u'七匹狼软灰']
    return word[word['query'].apply(lambda name:name in tobacco)]['query'].to_dict().values()

result = filter_query(word)

print result
刘奇

可以試試用正規:

import re
pattern = re.compile(u'烟|白沙|黄金叶|利群|南京九五|黄鹤楼软|黄鹤楼硬|娇子|钻石荷花|玉溪|七匹狼尚品|七匹狼软灰')
result = filter(pattern.search, word['query'])
左手右手慢动作

KMP 演算法

Peter_Zhu

KMP
Manacher
TireTree

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!