Подтвердить что ты не робот

Python Pandas подсчет и суммирование конкретных условий

Существуют ли в pandas отдельные функции для выполнения эквивалентов SUMIF, которые суммируются по определенному условию и COUNTIF, который подсчитывает значения конкретных условий из Excel?

Я знаю, что существует много многоступенчатых функций, которые можно использовать для

например, для sumif Я могу использовать (df.map(lambda x: condition), or df.size()), затем использовать .sum()

а для countif я могу использовать (groupby functions и искать свой ответ или использовать фильтр и .count())

Есть ли простой одноэтапный процесс для выполнения этих функций, когда вы вводите условие и кадр данных, и получаете суммы или подсчитанные результаты?

4b9b3361

Ответ 1

Вы можете сначала сделать условный выбор и суммировать результаты выбора с помощью функции sum.

>> df = pd.DataFrame({'a': [1, 2, 3]})
>> df[df.a > 1].sum()   
a    5
dtype: int64

Имея более одного условия:

>> df[(df.a > 1) & (df.a < 3)].sum()
a    2
dtype: int64

Ответ 2

Вы не упомянули о фантастических способностях индексирования для данных, например:

>>> df = pd.DataFrame({"class":[1,1,1,2,2], "value":[1,2,3,4,5]})
>>> df[df["class"]==1].sum()
class    3
value    6
dtype: int64
>>> df[df["class"]==1].sum()["value"]
6
>>> df[df["class"]==1].count()["value"]
3

Вы можете заменить df["class"]==1 на другое условие.