Pandas - value_counts для нескольких значений в одной ячейке - PullRequest
0 голосов
/ 02 июля 2018

У меня есть фрейм данных, в котором есть столбец с несколькими значениями, разделенными запятой, например:

Country
Australia, Cuba, Argentina
Australia
United States, Canada, United Kingdom, Argentina

Я бы хотел посчитать каждое уникальное значение, подобное value_counts, вот так:

Australia: 2
Cuba: 1
Argentina: 2
United States: 1

Мой самый простой метод показан ниже, но я подозреваю, что это можно сделать более эффективно и аккуратно.

from collections import Counter
Counter(pd.DataFrame(data['Country'].str.split(',', expand=True)).values.ravel())

Приветствия

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Другой вариант - split, а затем использовать value_counts

pd.Series(df.Country.str.split(', ').sum()).value_counts()

Argentina         2
Australia         2
United Kingdom    1
Canada            1
Cuba              1
United States     1
dtype: int64
0 голосов
/ 02 июля 2018

Вы можете использовать get_dummies

df.Country.str.get_dummies(sep=', ').sum()
Out[354]: 
Argentina         2
Australia         2
Canada            1
Cuba              1
United Kingdom    1
United States     1
dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...