Python Pandas计算和总结特定条件

时间:2014-01-08 12:06:25

标签: python pandas sum

pandas中是否有单个函数执行SUMIF的等价函数,它对特定条件求和,COUNTIF从Excel中计算特定条件的值?

我知道有许多可用于

的多步功能

例如sumif我可以使用(df.map(lambda x: condition), or df.size())然后使用.sum()

countif我可以使用(groupby functions查找我的答案或使用过滤器和.count())

在您输入条件和数据框并获得总和或计算结果时,是否有简单的一步过程来执行这些功能?

3 个答案:

答案 0 :(得分:61)

您可以先进行条件选择,然后使用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

答案 1 :(得分:27)

您没有提到数据帧的精确索引功能,例如:

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

答案 2 :(得分:1)

我通常在逻辑条件列上使用numpy sum:

>>> import numpy as np
>>> import pandas as pd
>>> df = pd.DataFrame({'Age' : [20,24,18,5,78]})
>>> np.sum(df['Age'] > 20)
2

在我看来,这比上述解决方案要短