Метод prod
Метод prod применяется к объекту GroupBy
и возвращает произведение значений для каждой группы.
По умолчанию метод вычисляет произведение для всех числовых столбцов.
Метод поддерживает параметр numeric_only,
который позволяет исключить нечисловые столбцы,
и параметр min_count, задающий минимальное количество
ненулевых значений для вычисления.
Если в группе меньше значений, чем указано в min_count,
результатом будет NaN.
Синтаксис
groupby_obj.prod(numeric_only=True, min_count=0)
Пример
Рассмотрим базовое использование метода для вычисления произведения значений в группах:
import pandas as pd
df = pd.DataFrame({
'category': ['A', 'B', 'A', 'B', 'A'],
'value': [2, 3, 4, 5, 6]
})
grouped = df.groupby('category')
res = grouped.prod()
print(res)
Результат выполнения кода:
value
category
A 48
B 15
Пример
Используем параметр numeric_only для работы только с числовыми столбцами,
исключая строковые:
import pandas as pd
df = pd.DataFrame({
'group': ['X', 'Y', 'X', 'Y'],
'num': [2, 3, 4, 5],
'text': ['a', 'b', 'c', 'd']
})
grouped = df.groupby('group')
res = grouped.prod(numeric_only=True)
print(res)
Результат выполнения кода:
num
group
X 8
Y 15
Пример
Используем параметр min_count для задания минимального количества
ненулевых значений. Если их меньше, результат будет NaN:
import pandas as pd
df = pd.DataFrame({
'cat': ['A', 'B', 'A', 'B', 'A'],
'val': [2, 3, 0, 0, 4]
})
grouped = df.groupby('cat')
res = grouped.prod(min_count=2)
print(res)
Результат выполнения кода:
val
cat
A 8.0
B NaN
Пример
Применим метод к нескольким числовым столбцам для вычисления произведения по каждой группе:
import pandas as pd
df = pd.DataFrame({
'group': ['one', 'two', 'one', 'two', 'one'],
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
grouped = df.groupby('group')
res = grouped.prod()
print(res)
Результат выполнения кода:
a b
group
one 15 15000
two 8 800