Вы можете использовать следующий базовый синтаксис, чтобы получить первые 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: как подсчитать вхождения определенного значения в столбце