Подсчет вхождений значения в столбце и сохранение в словаре

#python #pandas #dataframe #dictionary

#python #pandas #фрейм данных #словарь

Вопрос:

Допустим, у меня есть фрейм данных с именами и возрастами, где name (тип object) — это индекс, а age (тип int) — единственный столбец.

Я хочу подсчитать вхождения каждого имени, независимо от того, повторяется ли имя более одного раза, и сохранить их в словаре. Например, если существует 7 Ann, то пара ключ-значение в словаре будет иметь вид {‘Ann’: 7} . Похоже, это не работает:

 name_dict = df.groupby(df['name']).count()
  

Спасибо.

Комментарии:

1. Приведенный выше код должен работать должным образом, какую ошибку вы получили, когда попробовали это?

Ответ №1:

Вы почти на месте. Если у вас есть фрейм данных

 df = pd.DataFrame({'Name':['Ann','Bob','Ann','Bob','Ann',], 'Age':[23,34,45,56,12]})
  

затем запустите это:

 df.groupby('Name').count().to_dict(orient='dict')['Age']
  

производит

 {'Ann': 3, 'Bob': 2}
  

Комментарии:

1. Привет, спасибо за ваш ответ. Мой код возвращает ошибку orient ‘dict’ не понято

2. хм. какую версию pandas вы используете? pip show pandas

3. на самом деле вам все равно не нужен этот бит, я думаю, это тоже должно сработать df.groupby('Name').count().to_dict()['Age']