データ分析用ライブラリpandasのデータフレームに対する平均、標準偏差などの統計量の求めかたを説明する。
ライブラリpandasを使うにはインポートが必要。通常次のようにpdと略されてインポートされる。
import pandas as pd
1. describeによる統計量算出
pandas.DataFrame.describeを用いるとデータフレームについて以下の統計量が取得できる。
項目 | 定義 | 個別のメソッド |
---|---|---|
count | データ数 | count |
mean | 平均 | mean |
std | 標準偏差 | std |
min | 最小値 | min |
25% | 25パーセンタイル | |
50% | 50パーセンタイル・中央値 | |
75% | 75パーセンタイル | |
max | 最大値 | max |
import pandas as pd data = [[176, 82], [162, 53], [182, 87], [169, 59], [174, 75]] index = ['John', 'Tom', 'Ken', 'Keith', 'Andy'] columns = ['身長', '体重'] df = pd.DataFrame(data=data, index=index, columns=columns) print(df.describe())
実行結果
身長 体重 count 5.000000 5.000000 mean 172.600000 71.200000 std 7.536577 14.669697 min 162.000000 53.000000 25% 169.000000 59.000000 50% 174.000000 75.000000 75% 176.000000 82.000000 max 182.000000 87.000000
2. 項目別の統計量算出
上表に示すそれぞれの統計量についてのメソッドを使うことで項目別の統計量が取得できる。
import pandas as pd data = [[176, 82], [162, 53], [182, 87], [169, 59], [174, 75]] index = ['John', 'Tom', 'Ken', 'Keith', 'Andy'] columns = ['身長', '体重'] df = pd.DataFrame(data=data, index=index, columns=columns) print(df.min())
実行結果
身長 162 体重 53 dtype: int64
データフレームのカラムを指定すれば特定のカラムについての統計量のみ取得できる。
import pandas as pd data = [[176, 82], [162, 53], [182, 87], [169, 59], [174, 75]] index = ['John', 'Tom', 'Ken', 'Keith', 'Andy'] columns = ['身長', '体重'] df = pd.DataFrame(data=data, index=index, columns=columns) print(df['身長'].min())
実行結果
162
3. 相関係数の算出
データフレームのcolumns間の相関係数を求めるにはcorrを用いる。
import pandas as pd data = [[176, 82], [162, 53], [182, 87], [169, 59], [174, 75]] index = ['John', 'Tom', 'Ken', 'Keith', 'Andy'] columns = ['身長', '体重'] df = pd.DataFrame(data=data, index=index, columns=columns) print(df.corr())
実行結果
身長 体重 身長 1.00000 0.96645 体重 0.96645 1.00000
相関係数を算出する場合、グラフ描画ライブラリmatplotlibにより散布図を一緒に表示すると分かりやすい。
散布図の作成方法についてはこちら(【matplotlib】散布図の作成と体裁の変更)。
import pandas as pd import matplotlib.pyplot as plt data = [[176, 82], [162, 53], [182, 87], [169, 59], [174, 75]] index = ['John', 'Tom', 'Ken', 'Keith', 'Andy'] columns = ['身長', '体重'] df = pd.DataFrame(data=data, index=index, columns=columns) print(df.corr()) plt.scatter(df['身長'], df['体重']) plt.show()
実行結果
身長 体重 身長 1.00000 0.96645 体重 0.96645 1.00000
4. リファレンス
pandas > pandas.DataFrame.describe
pandas > pandas.DataFrame.count
pandas > pandas.DataFrame.min
pandas > pandas.DataFrame.max
pandas > pandas.DataFrame.mean
pandas > pandas.DataFrame.std
使用したバージョン:Python 3.7.0/pandas 1.0.3
0 件のコメント:
コメントを投稿