You can also call pd.value_counts directly in the list.
You can create an appropriate list via numpy.concatenate , itertools.chain or cytoolz.concat
from cytoolz import concat from itertools import chain
cytoolz.concat
pd.value_counts(list(concat(df.categories.values.tolist())))
itertools.chain
pd.value_counts(list(chain(*df.categories.values.tolist())))
numpy.unique + numpy.concatenate
u, c = np.unique(np.concatenate(df.categories.values), return_counts=True) pd.Series(c, u)
Whole exit
Book 2 Electronic 1 Fantasy 1 Material 1 Sci-Fi 1 dtype: int64
time testing

source share