web-dev-qa-db-ja.com

Python Pandas特定の条件のカウントと合計

pandasには、特定の条件で合計する SUMIF と、 COUNTIF の値をカウントする同等の機能を実行する単一の関数がありますかExcelからの特定の条件?

に使用できる多くの複数のステップ関数があることを知っています

たとえばsumifの場合、(df.map(lambda x: condition), or df.size())を使用してから.sum()を使用できます

countifの場合、(groupby functionsを使用して回答を探すか、フィルターと.count())を使用できます

条件とデータフレームを入力し、合計またはカウント結果を取得するこれらの機能を実行するための簡単なワンステッププロセスはありますか?

52
user3084006

最初に条件付き選択を行い、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
66
Jimmy C

データフレームの高度なインデックス機能については言及していませんでした。例:

>>> 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を別の条件に置き換えることができます。

33
Thorsten Kranz