Вычленяя отдельные слова из панды фрейма данных


Я новичок в анализе данных и онлайн-обучение. У меня есть задача, чтобы извлечь конкретные слова из конкретного столбца в кадр данных, а затем подсчитать эти слова, а потом просто сделать какой-мин/макс/среднее муравей и т. д... Я не нашел конкретных любой способ для этого в Пандах, так что я попытался создать функцию для этого. Я сделал это так далеко:

import re
import string

def countWords(data_frame, selected_words):
    words_dict = {}

    for sentence in data_frame:
        remove = string.punctuation
        remove = remove.replace("'", "") # don't remove hyphens
        pattern = r"[{}]".format(remove) # create the pattern

        test = re.sub(pattern, "", str(sentence)) #compile

        splited_words = str(test).split(' ')

        for word in splited_words:
            word = word.strip()
            word = word.lower()
            if word in selected_words:
                if word not in words_dict:
                    words_dict[word] = 1
                else:
                    words_dict[word] += 1
    return words_dict

Он работает, как ожидалось, но не так, как я ожидал. Что можно сделать лучше в этот код, чтобы улучшить производительность?

Он занимает примерно ~5С выполнить для 15257065 слова в 183531 предложений.

Образец ввода

selected_words = ['awesome', 'great', 'fantastic', 'amazing', 'love', 'horrible', 'bad', 'terrible', 'awful', 'wow', 'hate'] 
data_frame = 'These flannel wipes are OK, but in my opinion not worth keeping. I also ordered someImse Vimse Cloth Wipes-Ocean Blue-12 countwhich are larger, had a nicer, softer texture and just seemed higher quality. I use cloth wipes for hands and faces and have been usingThirsties 6 Pack Fab Wipes, Boyfor about 8 months now and need to replace them because they are starting to get rough and have had stink issues for a while that stripping no longer handles.'


Комментарии