Как добавить столбец Count в Pandas DataFrame


Вы можете использовать следующий базовый синтаксис, чтобы добавить столбец count в pandas DataFrame:

df['var1_count'] = df.groupby('var1')['var1']. transform('count')

Этот конкретный синтаксис добавляет столбец с именем var1_count в DataFrame, который содержит количество значений в столбце с именем var1 .

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: Groupby и Count с условием в Pandas

Предположим, у нас есть следующий кадр данных pandas, который содержит информацию о различных баскетболистах:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
 'pos': ['Gu', 'Fo', 'Fo', 'Fo', 'Gu', 'Gu', 'Fo', 'Fo'],
 'points': [18, 22, 19, 14, 14, 11, 20, 28]})

#view DataFrame
print(df)

 team pos points
0 A Gu 18
1 A Fo 22
2 A Fo 19
3 B Fo 14
4 B Gu 14
5 B Gu 11
6 B Fo 20
7 B Fo 28

Мы можем использовать следующий код, чтобы добавить столбец с именем team_count , который содержит количество каждой команды:

#add column that shows total count of each team
df['team_count'] = df.groupby('team')['team']. transform('count')

#view updated DataFrame
print(df)

 team pos points team_count
0 A Gu 18 3
1 A Fo 22 3
2 A Fo 19 3
3 B Fo 14 5
4 B Gu 14 5
5 B Gu 11 5
6 B Fo 20 5
7 B Fo 28 5

Есть 3 строки со значением команды A и 5 строк со значением команды B.

Таким образом:

  • Для каждой строки, где команда равна A, значение в столбце team_count равно 3 .
  • Для каждой строки, где команда равна B, значение в столбце team_count равно 5 .

Вы также можете добавить столбец «счетчик», который группируется по нескольким переменным.

Например, в следующем коде показано, как добавить столбец count, который группируется по переменным team и pos :

#add column that shows total count of each team and position
df['team_pos_count'] = df.groupby(['team', 'pos')['team']. transform('count')

#view updated DataFrame
print(df)

 team pos points team_pos_count
0 A Gu 18 1
1 A Fo 22 2
2 A Fo 19 2
3 B Fo 14 3
4 B Gu 14 2
5 B Gu 11 2
6 B Fo 20 3
7 B Fo 28 3

Из вывода мы видим:

  • Существует 1 строка, содержащая A в столбце team и Gu в столбце pos .
  • Есть 2 строки, содержащие A в столбце team и Fo в столбце pos .
  • Есть 3 строки, содержащие B в столбце team и Fo в столбце pos .
  • Есть 2 строки, содержащие B в столбце team и Gu в столбце pos .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:

Pandas: как использовать GroupBy и подсчет значений
Pandas: как использовать GroupBy с подсчетом бинов
Pandas: как подсчитать значения в столбце с условием

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.