Более быстрый способ подсчитать общее вхождение значений в столбце списков в пандах?

1
задан tripleee 14 April 2019 в 07:35
поделиться

2 ответа

Как насчет этого?

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()
0
ответ дан pythonjokeun 14 April 2019 в 07:35
поделиться

Вместо этого используйте списочное понимание со сглаживанием 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()
0
ответ дан jezrael 14 April 2019 в 07:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: