【Python】基本統計量と相関係数を出力する
処理概要
手元にあるエクセルのデータなどから基本統計量と相関係数を出力するためのサンプルコード。 手軽にデータの概要や傾向を見たい時に利用する。
入力データ
input.tsv
- エクセルなどからコピーして作ったTSVファイルを使用することを想定したサンプルデータ
- 列名の先頭に「★」をつけた列はダミー変数化処理の対象となる
- テキストデータをそのまま処理することができないため、事前処理対象の目印としている
★店舗名 | 売り上げ | 経費 |
---|---|---|
新宿 | 1000 | 500 |
渋谷 | 1500 | 700 |
虎ノ門 | 780 | 200 |
出力データ
下記の3ファイルが出力される
- 基本統計量.xlsx
- 相関係数.xlsx
- 相関係数.png
コード
import pandas as pd import matplotlib.pyplot as plt import japanize_matplotlib import seaborn as sns print('>>> 処理開始') # TSVファイルを読み込む df = pd.read_csv('input.tsv', sep='\t') # ★から始まる列をダミー変数化する columns = df.columns for col in df.columns: if col.startswith('★'): df = pd.get_dummies(df, columns=[col]) print('>>> データ出力中・・・') # 基本統計量をエクセルに出力する df.describe().to_excel('基本統計量.xlsx') # 相関係数を変数に格納する cor = df.corr() # 相関係数をエクセルに出力する cor.to_excel('相関係数.xlsx') # 相関係数のヒートマップを変数に格納する heatmap = sns.heatmap(cor, cmap=sns.color_palette('Blues', 20), annot=True, fmt='.2f', vmin=-1, vmax=1) # ヒートマップを出力する plt.savefig('相関係数.png', bbox_inches='tight') print('>>> 処理終了')