まずは準備として GitHub のリポジトリにあるサンプルデータ (clustering-sample.csv) を読み込みます.
CSVファイルを読み込む
import pandas as pd
url = "https://github.com/rinsaka/sample-data-sets/blob/master/clustering-sample.csv?raw=true"
df = pd.read_csv(url)
print(df)
ID x y 0 0 7.4346 6.6520 1 1 6.5419 6.3611 2 2 8.9819 9.2461 3 3 3.8554 4.8386 4 4 1.9527 3.4848 .. ... ... ... 295 295 4.1205 1.5010 296 296 9.2843 1.7563 297 297 6.6627 7.3856 298 298 5.7654 6.0543 299 299 2.2411 1.0902 [300 rows x 3 columns]
ID カラムは不要であるので,削除しておきます.
IDカラムの削除
df = df.drop("ID", axis=1)
print(df)
x y 0 7.4346 6.6520 1 6.5419 6.3611 2 8.9819 9.2461 3 3.8554 4.8386 4 1.9527 3.4848 .. ... ... 295 4.1205 1.5010 296 9.2843 1.7563 297 6.6627 7.3856 298 5.7654 6.0543 299 2.2411 1.0902 [300 rows x 2 columns]
平均は mean()
メソッドを使います.
xカラムの平均
df['x'].mean()
6.018139333333333
カラムの取り出し方は他にもあります.
xカラムの平均
df.loc[:, 'x'].mean()
6.018139333333333
別のカラムでも求めてみます.
yカラムの平均
df['y'].mean()
4.261147666666667
すべてのカラムで平均を求めることもできます.
カラムごとの平均
df.mean()
x 6.018139 y 4.261148 dtype: float64
すべてのカラムで平均を求めた後,個別の結果を取り出してみます.
結果の抽出方法
m = df.mean()
print(m[0])
print(m[1])
6.018139333333333 4.261147666666667
最大は max()
メソッド,最小は min()
メソッドを使います.
xカラムの最大値
df['x'].max()
9.8278
x カラムの最小値
df['x'].min()
1.005
各カラムの最大値
df.max()
x 9.8278 y 9.8951 dtype: float64
各カラムの最小値
df.min()
x 1.0050 y 0.0457 dtype: float64
中央値は median()
メソッドを使います.(最頻値は mode()
ですがこのデータでの実行は省略します.)
xカラムの中央値
df['x'].median()
6.66245
各カラムの中央値
df.median()
x 6.66245 y 3.48935 dtype: float64
標準偏差は std()
で求めることができます.このとき,特に引数を指定しなければ,母集団の標準偏差を求めることに注意してください.つまり,データ数を \( N \) とすると,\( N-1 \) で割った結果になります.
母集団の標準偏差 (N-1で割ったもの)
df['x'].std()
2.5164113047290417
メソッド std()
には ddof
引数を指定することができます.ddof
は Delta Degrees of Freedom であり,\( N - ddof \) で割ることを意味します.引数省略時は ddof = 1
であるので,次の場合も母集団の標準偏差が出力される(省略時の ddof が NumPy の std( ) とは異なるので注意が必要です).
母集団の標準偏差:N-1で割ったもの)
df['x'].std(ddof=1)
2.5164113047290417
標本の標準偏差は \( N \) で割れば良いので,ddof = 0
を指定すると求められる.
標本の標準偏差:Nで割ったもの
df['x'].std(ddof=0)
2.5122137850349353
カラムごとに標本の標準偏差を求めます.
標本の標準偏差:Nで割ったもの
df.std(ddof=0)
x 2.512214 y 2.824738 dtype: float64
いくつかの基本統計量をまとめて得ることもできます.これには describe()
メソッドを使うと良いでしょう.ここで std は標本ではなく母集団の標準偏差が出力されていることに注意します.
基本統計量
df.describe()
相関係数 (correlation coefficient) を求めるには corr()
メソッドを使います.
相関係数
df.corr()