Как сложить счетчики одного и того же числа в l oop и составить списки (Python) - PullRequest
0 голосов
/ 07 мая 2020

The data I am using: Analyzing Data and using for loops and lists B0e.png

Я все еще относительно новичок в python. Я пытаюсь сделать что-нибудь посложнее. Как я могу использовать a для l oop или итерацию, чтобы я считал те же имена с рейтингом 1 и добавлял их, но также помещал их в формат списка, а также помещал подсчитанные имена в отдельный список. Причина этого в том, что я создам сюжет, и это я могу сделать, но я застрял в том, как разделить общее количество имен с одним и тем же именем и уже подсчитанных имен.

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

pandas .groupby ()

Чтобы решить любую агрегацию форм в Python, все, что вам нужно, это взломать функцию groupby

Для вашего случая, если вы хотите суммировать «Подсчитайте» для всех уникальных имен, а затем постройте его, используйте pd.groupby ()

. Убедитесь, что вы сначала преобразовали его в DataFrame, а затем применили Groupby Magi c

name_file = pd.DataFrame(name_file)
name_file.groupby('Name').agg({'Count':'sum'})

Это дает вам агрегированную сумму подсчетов для уникального имени eaxh в вашем фрейме данных

Чтобы получить количество каждого имени, используйте метод size.reset_index () ниже

pd.DataFrame(name_file).groupby('Name').size().reset_index()

Это возвращает частота появления каждого уникального имени в name_file

Надеюсь, это поможет! Ура!

0 голосов
/ 07 мая 2020

Используя это в качестве примера DataFrame:

   RANK      NAME
0     1     EMILY
1     1    DANIEL
2     1     EMILY
3     1  ISABELLA

Вы можете сделать это, чтобы получить подсчитанные имена:

counted_names = name_file[name_file.RANK == 1]['NAME'].value_counts()
print(counted_names)

EMILY       2
DANIEL      1
ISABELLA    1
...