Панды: как получить первые n строк по группе
Вы можете использовать следующий базовый синтаксис, чтобы получить первые N строк по группам в DataFrame pandas:
df. groupby (' group_column '). head ( 2 ). reset_index (drop= True )
Этот конкретный синтаксис вернет первые две строки для каждой группы.
Просто измените значение в функции head() , чтобы вернуть другое количество верхних строк.
В следующих примерах показано, как использовать этот синтаксис со следующим DataFrame pandas:
import pandas as pd #createDataFrame 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 AG 5 1 AG 7 2 AG 7 3 AF 9 4AF 12 5 BG 9 6 BG 9 7 BF 4 8 BF 7 9 BF 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 строк, сгруппированных по нескольким столбцам.
Следующий код показывает, как вернуть первые две строки, сгруппированные по переменным команды и позиции :
#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: как подсчитать появление определенного значения в столбце