Как подсчитать количество упоминаний каждого значения в колонке?

Дан DataFrame:

d = {'name': [['rick', 'mike', 'morty'], 'NaN', ['brick', 'nick'], ['rick', 'reaven', 'bart', 'homer'], ['rick', 'morty']],
     'Date': ['11/05/2011', '9/02/2010', '1/01/2014', '12/20/2020', '9/30/2009'],
     'Address': ['AR', 'YU', 'RU', 'EU', 'BY']}
df = pd.DataFrame(data = d)

Необходимо получить данные о количестве упоминаний каждого из имён в столбце name. Желательно без применения цикла.


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

Автор решения: D.Vinogradov
d = {'name': [['rick', 'mike', 'morty'], 'NaN', ['brick', 'nick'], ['rick', 'reaven', 'bart', 'homer'], ['rick', 'morty']],
     'Date': ['11/05/2011', '9/02/2010', '1/01/2014', '12/20/2020', '9/30/2009'],
     'Address': ['AR', 'YU', 'RU', 'EU', 'BY']}
df = pd.DataFrame(data=d).replace('NaN', np.nan).dropna()

df['name'] = df['name'].apply(lambda x: ' '.join([i for i in x]))
# print(df)
print(pd.Series(' '.join(df['name']).split()).value_counts())

>>>
rick      3
morty     2
mike      1
brick     1
nick      1
reaven    1
bart      1
homer     1

ваш строковый Nan заменил. в любом случае от NaN избавиться придется.

→ Ссылка