2017-02-14 10 views
1

У меня есть dataframe со списком строк в качестве столбца и вы хотите использовать collections.counter для создания словарного словаря. Информационная рамка выглядит следующим образом:Создать словарь частотной частоты из списка столбцов dataframe

>>> job_title['title'] 
0   [responsible, caring, trustworthy, babysitter] 
1    [compassionate, trustworthy, babysitter] 
2  [family, looking, kindergarten, preschool, chi... 
3  [babysitter, needed, 2, children, bee, cave, n... 
4    [fun, patient, nonjudgemental, babysitter] 
5  [responsible, interactive, intelligent, babysi... 
6     [responsible, friendly, babysitter] 
7  [family, looking, kindergarten, preschool, chi... 
8  [family, looking, kindergarten, preschool, chi... 
9      [reliable, clean, friendly, nanny] 

Каков наиболее эффективный способ достичь этого?

ответ

1

Я думаю, что вы можете плоско lists по chain.from_iterable, а затем использовать Counter:

from itertools import chain 
from collections import Counter 

print (Counter(chain.from_iterable(job_title.title))) 

Пример:

job_title = pd.DataFrame({'title':[['responsible', 'caring', 'trustworthy', 'babysitter'], 
            ['compassionate', 'trustworthy', 'babysitter']]}) 

print (job_title) 
              title 
0 [responsible, caring, trustworthy, babysitter] 
1  [compassionate, trustworthy, babysitter] 


print (Counter(chain.from_iterable(job_title.title))) 
Counter({'babysitter': 2, 'trustworthy': 2, 
     'compassionate': 1, 'responsible': 1, 'caring': 1}) 
+0

Это идеальный вариант, спасибо так много !! – mangodreamz