С пандами, используя split
, stack
и value_counts
:
series = df.Text.str.split(expand=True).stack().value_counts()
Альтернатива на основе Python, использующая chain.from_iterable
(для выравнивания) и Counter
(дляcount):
from collections import Counter
from itertools import chain
counter = Counter(chain.from_iterable(map(str.split, df.Text.tolist())))
Пересоздайте серию отсчетов, используя:
series = pd.Series(counter).sort_values(ascending=False)
, который идентичен описанному выше решению для панд и должен быть намного быстрее, так как в нем не используется стек (stack
- медленная операция).