ノンプログラマーのためのPython学習サイト

Pandas|sum関数の使い方、条件を指定して合計

eye_catch_Pandas

困っている人

  • sum関数の使い方を知りたい
  • 条件を指定したデータの合計方法を知りたい
  • 複数条件でデータを合計する方法を教えてほしい
この記事で解決できること
  1. sum関数の使い方が分かる
  2. 条件を指定したデータの合計方法が分かる
  3. 複数条件でデータを合計する方法が分かる

Pandasのsum関数の使い方

pandas_sum

PandasのDataFrame(データフレーム )では、sum関数を使うことで列データの「合計」を算出できます。

sum関数はデータフレームの概要を調べる際によく利用します。今回は以下のデータフレーム を使って、様々なパターンの合計方法を説明していきます。

Pandasのsum関数の基本

今回紹介するsum関数の基本的な使い方です。

No. 基本形 説明
1 df[‘販売数量’].sum() データフレーム の販売数量を合計
2 df[df[“商品名”] == “りんご”].sum() データフレーム の列データ(商品名)が”りんご”の合計を算出
3 df.query(“商品名==’りんご’&販売数量>=10”).sum() データフレーム の列データ(商品名)が”りんご”で、販売数量が10以上の合計を算出

Pandasのsum関数の使い方のサンプルデータ

この記事では以下のサンプルデータを使います。よろしければ、ダウンロードしてご利用ください。

[st-mybox title=”” fontawesome=”” color=”#757575″ bordercolor=”#7ca1b7″ bgcolor=”#ffffff” borderwidth=”2″ borderradius=”2″ titleweight=”bold” fontsize=”” myclass=”st-mybox-class” margin=”25px 0 25px 0″]

  • サンプルデータ(’ fruits‘)

[/st-mybox]

また、GoogleColabへのサンプルデータ(Excelファイル)の読み込み方法については、以下の記事を参考にしてください。

[st-card id=180 label=”” name=”” bgcolor=”” color=”” fontawesome=”” readmore=”on”]

Pandasのsum関数で合計を算出

pandas_sum

それでは、sum関数によるデータを合計する方法を説明していきます。まずはExcelファイルを読み込んでください。

Excelファイル(fruits)の読み込み

Pandasを使ってExcelファイルを読み込みます。インデックス(一番左の列)を見ると、0から364までの365日分のデータであることが分かります。

pandas_sum

import pandas as pd
df = pd.read_excel('/content/fruits.xlsx') df

1.pandasをインポート
2.変数(df)にExcelファイルから読み込んだデータフレームを代入
3.変数(df)を出力

Pandasのsum関数で販売数量の合計を算出

データフレーム の「販売数量」の合計を算出します。2503個であることが分かります。

pandas_sum

df['販売数量'].sum()

1.データフレームの列データ(販売数量)の合計を算出

Pandasのsum関数|列データの条件(文字列)を指定して合計

データフレーム の列データ(販売数量)が10以上の合計を算出します。1027個であることが分かります。

pandas_sum

df[df["販売数量"]>=10].sum()

1.データフレームの列データ(販売数量)が10以上の合計を算出

Pandasのsum関数|列データの条件(文字列)を指定して合計

データフレームの列データ(商品名)が”りんご”の合計を算出します。970個であることが分かります。

pandas_sum

df[df["商品名"] == "りんご"].sum()

1.データフレームの列データ(商品名)が”りんご”の合計を算出

Pandasの「sum関数」と「queryメソッド」の使い方

pandas_sum

Pandasのデータフレーム では「sum関数」と「queryメソッド」を組み合わせることで、複雑な条件(AND・OR・NOT・BETWEEN)で合計を算出できます。それでは、具体的な使い方について説明していきます。

Pandasのsum関数とqueryメソッドの使い方|列データの条件(文字列)を指定して合計

データフレーム の列データ(商品名)が”りんご”の合計を算出します。970個のデータがあることが分かります。

df.query("商品名=='りんご'").sum()

1.データフレームの列データ(商品名)が”りんご”の合計を算出

Pandasのsum関数とqueryメソッドの使い方|AND条件を指定して合計

データフレーム の列データ(商品名)が”りんご”、そして列データ(販売数量)が”10以上”の合計を算出します。778個であることが分かります。

pandas_sum

df.query("商品名=='りんご'&販売数量>=10").sum()

1.データフレームの列データ(商品名)が”りんご”、そして列データ(販売数量)が”10以上”の合計を算出

Pandasのsum関数とqueryメソッドの使い方|AND・NOT条件を指定して合計

データフレーム の列データ(商品名)が”りんご以外”、そして列データ(販売数量)が”10以上”の合計を算出します。249個であることが分かります。

pandas_sum

df.query("not(商品名=='りんご') & 販売数量 >=10").sum()

1.データフレームの列データ(商品名)が”りんご以外”、そして列データ(販売数量)が”10以上”の合計を算出

Pandasのsum関数とqueryメソッドの使い方|BETWEEN条件を指定して合計

データフレーム の列データ(販売数量)が”5以上で10以下”の合計を算出します。1260個であることが分かります。

pandas_sum

df.query('5<= 販売数量 <= 10').count()

1.データフレームの列データ(販売数量)が”5以上で10以下”の合計を算出

Pandasのsum関数とqueryメソッドの使い方|AND・BETWEEN条件を指定して合計

データフレーム の列データ(販売数量)が”5以上で10以下”、そして列データ(商品名)が”りんご”の合計を算出します。203個であることが分かります。

pandas_sum

df.query("5<= 販売数量 <= 10 & 商品名=='りんご'").sum()

1.データフレームの列データ(販売数量)が”5以上で10以下”、そして列データ(商品名)が”りんご”の合計を算出

Pandasのsum関数の使い方まとめ

Pandasのsum関数は、データの合計を調べる際によく利用します。

query関数と組み合わせることで、複雑な条件(AND・OR・NOT・BETWEEN)を指定することができます。

データフレーム の概要を調べるのに便利なので、この記事の「sum関数」の使い方を参考にしてください。最後まで読んでいただき、ありがとうございます。