Как насчет этого?
import pandas as pd
split = data["SPLIT"].apply(pd.Series)
split = split.rename(columns = lambda x : 'val_' + str(x))
split.melt(value_name="val").groupby(["val"]).size()
Вместо этого используйте списочное понимание со сглаживанием sum
:
test = pd.Series([x for item in data.SPLIT for x in item]).value_counts()
Или сведите с помощью chain.from_iterable
:
from itertools import chain
test = pd.Series(list(chain.from_iterable(data.SPLIT))).value_counts()
Или используйте также collections.Counter
:
from itertools import chain
from collections import Counter
test = pd.Series(Counter(chain.from_iterable(data.SPLIT)))
Или:
import functools, operator
test = pd.Series(functools.reduce(operator.iconcat, data.SPLIT, [])).value_counts()
Решение для чистых панд:
test = pd.DataFrame(data.SPLIT.values.tolist()).stack().value_counts()