web-dev-qa-db-fra.com

Python Pandas comptant et additionnant des conditions spécifiques

Y a-t-il des fonctions uniques dans pandas pour exécuter les équivalents de SUMIF , qui additionne une condition spécifique et COUNTIF , qui compte les valeurs de conditions spécifiques d'Excel?

Je sais qu’il existe de nombreuses fonctions pouvant être utilisées pour

par exemple pour sumif je peux utiliser (df.map(lambda x: condition), or df.size()) puis utiliser .sum()

et pour countif je peux utiliser (groupby functions et chercher ma réponse ou utiliser un filtre et la .count())

Existe-t-il un processus simple en une étape pour effectuer ces fonctions, dans lequel vous entrez la condition et le bloc de données et vous obtenez la somme ou les résultats comptés?

52
user3084006

Vous pouvez d’abord faire une sélection conditionnelle et résumer les résultats de la sélection en utilisant la fonction sum.

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

A plus d'une condition:

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

Vous n'avez pas mentionné les fonctionnalités d'indexation sophistiquées des données, par exemple:

>>> 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

Vous pourriez remplacer df["class"]==1par une autre condition.

33
Thorsten Kranz