Pandas Series.sum() 関数

Pandas 常用函数Pandas よく使う関数


Series.sum()Pandas で Series の全要素の合計を計算するための関数です。データ分析で最もよく使われる統計関数の一つであり、数値データの総和をすばやく取得できます。

総売上高、総利益、総数量のいずれを計算する場合でも、sum()素早く完了するのに役立ちます。金融データ、統計レポート、売上データ分析などのシーンに特に適しています。


基本構文とパラメータ

sum()Series オブジェクトのメンバー関数であり、ドット演算子で直接呼び出します。

構文形式

Series.sum(axis=None, skipna=True, level=None, numeric_only=None, min_count=0, **kwargs)

パラメータの説明

パラメータ 型 説明 デフォルト値
axis int 軸方向を指定します。Series は1行のデータしかないため、このパラメータは主に DataFrame との互換性を目的としています。 None
skipna bool True の場合、計算時に NaN 値をスキップします。False の場合、NaN に遭遇すると結果は NaN を返します。 True
level int または str Series がマルチインデックス(MultiIndex)の場合、計算するレベルを指定します。 None
numeric_only bool True の場合、数値型データのみに対して計算します。それ以外の場合は数値への変換を試みます。 False
min_count int 計算に必要な有効値の最小数です。有効値がこの数より少ない場合は NaN を返します。 0

戻り値

  • 戻り値の型:数値型(int、float 或 numpy.nan)
  • 説明:Series 内のすべての要素の合計を返します。すべての要素が NaN(かつ skipna=True)の場合、0 を返します。

実例

簡単な例から複雑な例までの一連の例を通して、Series.sum()使い方を徹底的にマスターしましょう。

例1:基本的な使い方 - 数値リストの合計を計算する

最も基本的な使用方法は、数値型 Series を作成し、呼び出してsum()合計を計算することです。

実例

import pandas as pd

# 売上高を含む Series を作成
# 1週間の1日あたりの売上データをシミュレート
sales_data = pd.Series([1200, 1500, 1800, 900, 2100, 1600, 1350])

# 総売上高を計算
total_sales = sales_data.sum()

print(毎日の売上高:)
print(sales_data)
print()
print(f総売上高:{total_sales})

実行結果:

每日销售额:
0    1200
1    1500
2    1800
3     900
4    2100
5    1600
6    1350
dtype: int64

总销售额:10450

コードの解説:

  • 7日分の売上高を含む Series を作成し、データ型は整数です。
  • sum()すべての要素を単純に走査し、それらを加算して合計 10450 を取得します。

例2:欠損値を含むデータの処理

実際のデータには欠損値がよく含まれます。skipnaパラメータによって、これらの欠損値の処理方法が決まります。

実例

import pandas as pd
import numpy as np

# 欠損値を含む Series を作成
# 一部の日付の売上データが欠損していることをシミュレート
sales_with_nan = pd.Series([1200, 1500, np.nan, 1800, np.nan, 2100, 1600])

print(欠損値を含む売上データ:)
print(sales_with_nan)
print()

# デフォルトは skipna=True で、NaN をスキップして合計を計算
total_skipna = sales_with_nan.sum()
print(fskipna=True(デフォルト)のときの合計:{total_skipna})

# skipna=False を設定すると、NaN に遭遇した場合は NaN を返す
total_no_skipna = sales_with_nan.sum(skipna=False)
print(fskipna=False のときの合計:{total_no_skipna})

実行結果:

包含缺失值的销售数据:
0    1200.0
1    1500.0
2       NaN
3    1800.0
4       NaN
5    2100.0
6    1600.0
dtype: float64

skipna=True(默认)时的总和:8200.0
skipna=False 时的总和:nan

コードの解説:

  • 当 skipna=True(デフォルト値)の場合、sum()自動的に NaN 値をスキップし、有効な値のみの合計を計算します。
  • 計算過程:1200 + 1500 + 1800 + 2100 + 1600 = 8200
  • 当 skipna=Falseの場合、NaN が1つでも存在すると、結果は NaN を返します。これはデータの完全性を明確に把握する必要があるシーンで役立ちます。

例3:min_count パラメータの使用

min_countこのパラメータは計算に必要な有効値の最小数を設定でき、データの十分性を保証する必要がある場合に役立ちます。

実例

import pandas as pd
import numpy as np

# ほとんどが欠損値である Series を作成
sparse_data = pd.Series([np.nan, np.nan, 100, np.nan, np.nan])

print(ほとんど欠損しているデータ:)
print(sparse_data)
print()

# デフォルトは min_count=0 で、有効値が0個以上あれば計算する
result_default = sparse_data.sum()
print(fmin_count=0(デフォルト)のときの結果:{result_default})

# min_count=3 を設定すると、有効値が少なくとも3個ないと計算しない
result_min_count = sparse_data.sum(min_count=3)
print(fmin_count=3 のときの結果:{result_min_count})

# min_count=2 を設定すると、有効値が2個だけでよい
result_min_count_2 = sparse_data.sum(min_count=2)
print(fmin_count=2 のときの結果:{result_min_count_2})

実行結果:

大部分缺失的数据:
0     NaN
1     NaN
2    100.0
3     NaN
4     NaN
dtype: float64

min_count=0(默认)时的结果:100.0
min_count=3 时的结果:nan
min_count=2 时的结果:100.0

コードの解説:

  • この Series には有効値が1個(100)しかありません。
  • min_count=3少なくとも3個の有効値が必要であることを示しますが、実際には1個しかないため、NaN を返します。
  • min_count=2少なくとも2個の有効値が必要であることを示しますが、実際には1個しかなく、条件を満たさないため、NaN を返します。
  • このパラメータは、データ品質の要求が高い分析シーンで非常に役立ち、有効データが不足している状況を特定するのに役立ちます。

例4:実際のデータ分析における応用

実際のビジネスシーンに合わせて、sum()の典型的な応用を示します。

実例

import pandas as pd

# シミュレーション用の売上データ DataFrame を作成
sales_data = pd.DataFrame({
    '月': ['1月', '2月', '3月', '4月', '5月', '6月'],
    '華東地区': [12000, 15000, 18000, 16000, 14000, 17000],
    '華北地区': [10000, 11000, 13000, 12500, 11500, 14000],
    '華南地区': [15000, 17000, 19000, 18000, 16000, 20000]
})

print(上半期の各エリアの売上データ:)
print(sales_data)
print()

# 各エリアの半年間の総売上高を計算
for region in ['華東地区', '華北地区', '華南地区']:
    total = sales_data[region].sum()
    print(f{region}の半年間の総売上高:{total} 元)

print()

# 全エリアの総売上高を計算
total_all = sales_data[['華東地区', '華北地区', '華南地区']].sum().sum()
print(f全エリアの半年間の総売上高:{total_all} 元)

実行結果:

上半年各区域销售数据:
   月份   华东区   华北区   华南区
0  1月  12000  10000  15000
1  2月  15000  11000  17000
2  3月  18000  13000  19000
3  4月  16000  12500  18000
4  5月  14000  11500  16000
5  6月  17000  14000  20000

华东区半年总销售额:92000 元
华北区半年总销售额:72000 元
华南区半年总销售额:105000 元

所有区域半年总销售额:269000 元

注意事項

  • sum()デフォルトでは NaN 値をスキップします。これはほとんどの場合、期待される動作です。
  • 非数値データを含む Series を合計する必要がある場合は、事前にデータクレンジングを行うか、numeric_only=Trueパラメータを使用します。
  • min_countパラメータはデータ検証や品質チェックで非常に役立ち、有効データが不足している状況を特定するのに役立ちます。
  • 大規模なデータセットの場合、sum()のパフォーマンスは通常非常に優れており、内部で NumPy のベクトル化演算を使用しているためです。

まとめ

Series.sum()Pandas の中でも最も基本的で最もよく使われる統計関数の一つです。主な特徴は次のとおりです。

  • シンプルで使いやすく、ドット演算子で直接呼び出せます。
  • 欠損値の処理をサポートし、skipnaパラメータで制御します。
  • また、min_countパラメータを使用して有効値の最低要件を設定できます。
  • 内部で NumPy の最適化された実装を使用しており、計算効率が高いです。

実際のデータ分析では、sum()通常は他の集約関数(例えばmean()、count()など)と組み合わせて使用し、包括的なデータ統計分析を行います。

Pandas 常用函数Pandas よく使う関数

その他の拡張