Количество совпадений в столбце Series

подскажите, как посчитать количество совпадений в столбце? например, есть таблица

df = pd.Series(['a|b', 'a', 'a|d', 'a|c|d', 'c|b|c', 'd|c', 'b|a'])

как в нём посчитать какие самые повторяющиеся пары значений? чтобы получилось, например ac повторяется x раз ab повторяется y раз abc повторяется z раз и т.д


Ответы (1 шт):

Автор решения: Vasyl Kolomiets

Для столбца датафрейма:

df['x'].value_counts(sort=False).to_dict()

для сериас:

df = pd.Series(['a|b', 'a', 'a', 'a|d', 'a|c|d', 'c|b|c', 'd|c', 'b|a'])
df.value_counts(sort=False).to_dict()

выдаст

 {'a': 2, 'a|d': 1, 'b|a': 1, 'a|c|d': 1, 'd|c': 1, 'a|b': 1, 'c|b|c': 1}

Второй вариант через groupby:

df.groupby(by=df).size()

выдаст

Out[20]: 
a        2
a|b      1
a|c|d    1
a|d      1
b|a      1
c|b|c    1
d|c      1
dtype: int64

Но можно получить тот же словарь:

df.groupby(by=df).size().to_dict()
→ Ссылка