PythonのPandasで標準偏差を計算する方法

Python,イメージ

AI実装検定のご案内

ここでは PythonのPandasライブラリを使って標準偏差を計算する方法 を、基礎から実用的な応用まで、できるだけ詳しく解説します。

目次

標準偏差とは?

  • 標準偏差(Standard Deviation, SD) はデータのばらつきを表す代表的な統計量です。
  • 値が小さいほどデータは平均値の近くに集まり、大きいほど散らばっています。
  • 数式的には、平均からの偏差の二乗和をデータ数で割り、その平方根を取ったものです。

Pandasで標準偏差を計算する基本

Pandasでは、DataFrame.std() または Series.std() を使います。

例:Seriesの場合

import pandas as pd

data = pd.Series([10, 12, 23, 23, 16, 23, 21, 16])
print(data.std())

DataFrameでの標準偏差

DataFrameでは、列ごと・行ごとに計算できます。

df = pd.DataFrame({
    "A": [1, 2, 3, 4],
    "B": [10, 20, 30, 40]
})

# 列ごとの標準偏差(デフォルト)
print(df.std())

# 行ごとの標準偏差
print(df.std(axis=1))

引数の詳細

Series.std(ddof=1) / DataFrame.std(axis=0, ddof=1, skipna=True)

  • axis
    • 0(デフォルト):列ごとに計算
    • 1:行ごとに計算
  • ddof (自由度調整)
    • デフォルトは 1(母集団ではなく標本標準偏差)
    • 0にすると「母標準偏差」として計算
  • skipna
    • True(デフォルト):欠損値NaNを無視
    • False:NaNを含む場合は結果もNaN

NumPyとの違い

Pandasは内部的にNumPyを使っていますが、少し違いがあります。

import numpy as np

data = [10, 12, 23, 23, 16, 23, 21, 16]

print(np.std(data, ddof=0))  # 母標準偏差
print(np.std(data, ddof=1))  # 標本標準偏差

print(pd.Series(data).std()) # デフォルトはddof=1

Pandasのstd()標本標準偏差(ddof=1) がデフォルトです。

実用例

グループごとの標準偏差

df = pd.DataFrame({
    "Category": ["A", "A", "B", "B", "B"],
    "Value": [10, 12, 23, 21, 16]
})

print(df.groupby("Category")["Value"].std())

欠損値がある場合

df = pd.DataFrame({"A": [1, 2, None, 4, 5]})

print(df.std())           # skipna=True(欠損値無視)
print(df.std(skipna=False)) # 欠損値含めるのでNaN

まとめ

  • Pandasで標準偏差を計算するのは std() メソッド。
  • デフォルトは 標本標準偏差(ddof=1)
  • 行・列単位で指定可能(axis)。
  • 欠損値はデフォルトで無視(skipna=True)。
  • グループ化やNumPyとの併用で柔軟に使える。

以上、PythonのPandasで標準偏差を計算する方法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次