Are there single functions in pandas to perform the equivalents of SUMIF, which sums over a specific condition and COUNTIF, which counts values of specific conditions from Excel?
I know that there are many multiple step functions that can be used for
For example for sumif
I can use (df.map(lambda x: condition) or df.size())
then use .sum()
, and for countif
, I can use (groupby functions
and look for my answer or use a filter and the .count())
.
Is there simple one step process to do these functions where you enter the condition and the dataframe and you get the sum or counted results?
You can first make a conditional selection, and sum up the results of the selection using the sum
function.
>> df = pd.DataFrame({'a': [1, 2, 3]})
>> df[df.a > 1].sum()
a 5
dtype: int64
Having more than one condition:
>> df[(df.a > 1) & (df.a < 3)].sum()
a 2
dtype: int64
If you want to do COUNTIF
, just replace sum()
with count()