Pandas: как получить первые N строк по группам


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

df.groupby('group_column'). head ( 2 ). reset_index(drop= True )

Этот конкретный синтаксис вернет две верхние строки по группам.

Просто измените значение внутри функции head() , чтобы вернуть другое количество верхних строк.

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

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
 'position': ['G', 'G', 'G', 'F', 'F', 'G', 'G', 'F', 'F', 'F'],
 'points': [5, 7, 7, 9, 12, 9, 9, 4, 7, 7]})

#view DataFrame
print(df)

 team position points
0 A G 5
1 A G 7
2 A G 7
3 A F 9
4 A F 12
5 B G 9
6 B G 9
7 B F 4
8 B F 7
9 B F 7

Пример 1. Получение первых N строк, сгруппированных по одному столбцу

В следующем коде показано, как вернуть две верхние строки, сгруппированные по переменной команды :

#get top 2 rows grouped by team
df.groupby('team'). head ( 2 ). reset_index(drop= True )

 team position points
0 A G 5
1 A G 7
2 B G 9
3 B G 9

В выходных данных отображаются две верхние строки, сгруппированные по переменной команды .

Пример 2. Получение первых N строк, сгруппированных по нескольким столбцам

В следующем коде показано, как вернуть две верхние строки, сгруппированные по переменным team и position :

#get top 2 rows grouped by team and position
df.groupby(['team', 'position']). head ( 2 ). reset_index(drop= True )

 team position points
0 A G 5
1 A G 7
2 A F 9
3 A F 12
4 B G 9
5 B G 9
6 B F 4
7 B F 7

В выходных данных отображаются две верхние строки, сгруппированные по переменным команды и позиции .

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

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

Pandas: как найти уникальные значения в столбце
Pandas: как найти уникальные значения в нескольких столбцах
Pandas: как подсчитать вхождения определенного значения в столбце

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