У меня есть dataframe с названиями компаний. Я хочу рассчитать оценку для каждого имени, исходя из того, насколько распространены слова в названии.Векторизация списка в pandas
Во-первых, я создаю словарь слов для подсчета слов. Не уверен, если это чистый способ, но следующий Векторизованный подход работает:
words = itertools.chain.from_iterable(map(list, crsp.cname.str.split()))
Я тогда сосчитать слова:
wordcnts = defaultdict(int)
for w in words:
wordcnts[w] += 1
Теперь я хотел бы вычислить оценку для каждого названия компании, равного на сумму обратного wordcnts[word]
за каждое слово, которое появляется в названии компании.
Сейчас я итерация строк и используя список понимание для вычисления суммы:
score = {}
for idx, row in crsp.iterrows():
score[idx] = sum([1/wordcnts[w] for w in row.cname.split()])
Есть ли способ векторизации этот последний шаг?
было бы помогите, если бы некоторые образцы данных работали с – nitin
Несомненно, вот некоторые названия компаний: http://pastebin.com/hYsDzRNT – itzy
Или, для удобства чтения в кастрюлю das: http://pastebin.com/y3zdWgbk – itzy