Метод size
Метод size применяется к объекту GroupBy
и возвращает Series с количеством элементов в каждой группе.
В отличие от метода count, size учитывает все строки,
включая те, которые содержат пропущенные значения (NaN).
Метод не принимает параметров.
Синтаксис
groupby_object.size()
Пример
Давайте сгруппируем данные по столбцу 'a' и подсчитаем количество элементов в каждой группе:
import pandas as pd
df = pd.DataFrame({
'a': [1, 1, 2, 2, 2],
'b': [10, 20, 30, 40, 50]
})
grouped = df.groupby('a')
res = grouped.size()
print(res)
Результат выполнения кода:
a
1 2
2 3
dtype: int64
Пример
Давайте посмотрим, как метод size обрабатывает пропущенные значения.
В отличие от count, size включает строки с NaN:
import pandas as pd
df = pd.DataFrame({
'a': [1, 1, 2, 2, 3],
'b': [10, None, 30, None, 50]
})
grouped = df.groupby('a')
print("size:")
print(grouped.size())
print("\ncount:")
print(grouped.count())
Результат выполнения кода:
size:
a
1 2
2 2
3 1
dtype: int64
count:
b
a
1 1
2 0
3 1
Пример
Давайте используем метод size с группировкой по нескольким столбцам:
import pandas as pd
df = pd.DataFrame({
'a': [1, 1, 2, 2, 2],
'b': ['x', 'x', 'y', 'y', 'z'],
'c': [10, 20, 30, 40, 50]
})
grouped = df.groupby(['a', 'b'])
res = grouped.size()
print(res)
Результат выполнения кода:
a b
1 x 2
2 y 2
z 1
dtype: int64
Пример
Давайте преобразуем результат метода size в DataFrame
с помощью метода reset_index:
import pandas as pd
df = pd.DataFrame({
'a': [1, 1, 2, 2, 2],
'b': [10, 20, 30, 40, 50]
})
grouped = df.groupby('a')
res = grouped.size().reset_index(name='count')
print(res)
Результат выполнения кода:
a count
0 1 2
1 2 3