PythonのPandasを使って要約統計量を実装する方法

スポンサーリンク

Pythonで要約統計量を計算するには、Pandasの.describe()メソッドを使用する必要があります。

.describe()メソッドは数値データだけでなく、文字列やタイムスタンプのようなオブジェクトデータに対しても機能します。

この2つの出力は異なるフィールドを含んでいます。

数値データの場合、結果は以下のようになります。

  • カウント
  • 平均値
  • 標準偏差
  • 最小値
  • 最大値
  • 25 パーセンタイル
  • 50パーセンタイル
  • 75 パーセンタイル

オブジェクトデータの場合、結果は以下のようになります。

  • カウント
  • ユニーク
  • トップ
  • フリークエンシー
スポンサーリンク

describe() メソッドを使って Python で要約統計量を計算する

この記事では、数値データやオブジェクトデータに対して .describe() メソッドを使用する方法について見ていきます。

また、大規模なデータセットやタイムスタンプ系列を .describe メソッドで解析する方法についても見ていきます。

さっそく始めてみましょう。

1. 数値データに対する要約統計量

1から6までの数字でリストを定義し、そのリストの要約統計量を取得してみます。

まずはpandasをインポートするところから始めます。

import pandas as pd

ここで、系列を定義することができます

s = pd.Series([1, 2, 3, 4, 5, 6])

統計情報を表示するには

s.describe()

完全なコードと出力は次のとおりです。

import pandas as pd
s = pd.Series([1, 2, 3, 4, 5, 6])
s.describe()

結果は以下の通りです。

count    6.000000
mean     3.500000
std      1.870829
min      1.000000
25%      2.250000
50%      3.500000
75%      4.750000
max      6.000000
dtype: float64

それぞれの値が何を意味するのか理解しよう。

カウント|エントリーの総数
平均値|全エントリーの平均値
std|標準偏差
min|最小値
25% 25パーセンタイルマーク
50%|50パーセンタイルマーク(中央値)
75%|75パーセンタイルマーク
最大値|max|最大値

2. Python オブジェクトデータの要約統計量

文字列の集合として系列を定義し、それに対して .describe メソッドを使用して要約統計量を計算してみましょう。

系列は以下のように定義できます。

s = pd.Series(['a', 'a', 'b', 'c'])

要約統計量を得るには、:

s.describe()

完全なコードと出力は次のとおりです。

import pandas
s = pd.Series(['a', 'a', 'b', 'c'])
s.describe()

結果は以下の通りです。

count     4
unique    3
top       a
freq      2
dtype: object

以下のそれぞれの意味を理解しよう。

count|エントリーの総数
ユニーク|ユニークエントリの総数
top|最も頻度の高いエントリ
freq|最も頻度の高いエントリーの頻度|。

3. 大規模データセットの要約統計量

pandasを使って大規模なデータセットから要約統計量を取得することもできます。

データセットをpandasのデータフレームにインポートして、.describeメソッドを使用するだけです。

この記事では、サンプルデータセットとしてCalifornia Housing datasetを使用します。

まずはCSVデータセットをインポートして、.describeメソッドを呼び出すところからはじめましょう。

import pandas as pd
housing = pd.read_csv("/content/sample_data/california_housing.csv")
housing.describe()

を出力します。

import datetime
import numpy as np
 s = pd.Series([np.datetime64("2000-01-01"),np.datetime64("2010-01-01"),np.datetime64("2010-01-01"),np.datetime64("2002-05-08")])

この結果には、データセットのすべての列の要約統計量が含まれていることがわかります。

4. タイムスタンプ系列のサマリー統計

.describeを使って、タイムスタンプ系列のサマリー統計も取得することができます

まず、タイムスタンプ系列を定義してみましょう。

s.describe()

次に、このタイムスタンプ系列に対して .describe を呼び出します。

import datetime
import numpy as np
 s = pd.Series([np.datetime64("2000-01-01"),np.datetime64("2010-01-01"),np.datetime64("2010-01-01"),np.datetime64("2002-05-08")])
s.describe()

完全なコードと出力は以下の通りです。

count                       4
unique                      3
top       2010-01-01 00:00:00
freq                        2
first     2000-01-01 00:00:00
last      2010-01-01 00:00:00
dtype: object

結果は以下の通りです。

s.describe(datetime_is_numeric=True)

.describeにdateTimeを数値として扱うように指示することもできます。

これにより、数値データと同様の方法で結果が表示されます。

平均値、中央値、25パーセンタイル、75パーセンタイルを DateTime 形式で得ることができます。

これは.NET Frameworkを使用することで可能です。

count                      4
mean     2005-08-03 00:00:00
min      2000-01-01 00:00:00
25%      2001-10-05 12:00:00
50%      2006-03-05 12:00:00
75%      2010-01-01 00:00:00
max      2010-01-01 00:00:00

出力は次のようになります。

Describe

この結果には、平均値、中央値、25パーセンタイル、75パーセンタイルがDateTimeフォーマットで含まれていることがわかります。

まとめ

このチュートリアルは、Pythonで要約統計量を計算することについてでした。

数値データ、オブジェクトデータ、大規模データセット、タイムスタンプ系列について、要約統計量を計算するために調べました。

タイトルとURLをコピーしました