Метод head
Метод head применяется к объекту DataFrameGroupBy
и возвращает первые строки для каждой группы. Первым
параметром можно передать количество строк, которое будет
взято из каждой группы. Если параметр не указан,
возвращаются 5 строк из каждой группы.
Синтаксис
df.groupby(by).head([n])
Пример
Давайте получим первые 2 строки для каждой группы:
import pandas as pd
df = pd.DataFrame({
'a': [1, 1, 2, 2, 3, 3],
'b': [10, 20, 30, 40, 50, 60]
})
res = df.groupby('a').head(2)
print(res)
Результат выполнения кода:
a b
0 1 10
1 1 20
2 2 30
3 2 40
4 3 50
5 3 60
Пример
Давайте получим первые строки из каждой группы
без указания количества. Вернутся 5 строк из каждой группы:
import pandas as pd
df = pd.DataFrame({
'a': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2],
'b': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
})
res = df.groupby('a').head()
print(res)
Результат выполнения кода:
a b
0 1 10
1 1 20
2 1 30
3 1 40
4 1 50
6 2 70
7 2 80
8 2 90
9 2 100
10 2 110
Пример
Метод head можно использовать для выборки
первых записей в каждой группе с последующей
агрегацией. Например, для подсчета суммы по первым
двум строкам каждой группы:
import pandas as pd
df = pd.DataFrame({
'a': [1, 1, 1, 2, 2, 2],
'b': [10, 20, 30, 40, 50, 60]
})
grouped = df.groupby('a')
res = grouped.head(2).groupby('a').sum()
print(res)
Результат выполнения кода:
b
a
1 30
2 90