Pandas: як отримати перші n рядків за групою


Ви можете використовувати наступний базовий синтаксис, щоб отримати перші N рядків за групою в pandas DataFrame:

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

Цей конкретний синтаксис повертає перші 2 рядки на групу.

Просто змініть значення у функції head() , щоб повернути іншу кількість верхніх рядків.

У наведених нижче прикладах показано, як використовувати цей синтаксис із такими pandas DataFrame:

 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 рядків, згрупованих за стовпцем

Наступний код показує, як повернути перші 2 рядки, згруповані за змінною team :

 #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 рядки, згруповані за командною змінною.

Приклад 2. Отримайте перші N рядків, згрупованих за кількома стовпцями

Наступний код показує, як повернути перші 2 рядки, згруповані за змінними команди та позиції :

 #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

Вихідні дані показують перші 2 рядки, згруповані за змінними команди та позиції .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:

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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *