「日経ソフトウェア9月号 特集1 統計」を行ってみます。
記述統計を活用して家計簿データを分析しよう
家計簿データをもとに以下を実行します。
・データを結合する
・データを加工する
・支出金額の分布を調べる
・項目間の相関を調べる
家計簿データは日経ソフトウェアのWebページからダウンロードできます。
サンプルプログラムは日経ソフトウェアのWebからダウンロードできます。
以下URLから「本誌バックナンバーを見る」→「2022年9月号」→「・「特集1 Pythonで学ぶ統計 記述統計編」(t12209.zip)」
t12209フォルダの下のexpensesフォルダにあります。
Google Colabを開き「expenses」フォルダを作成し、その中にcsvファイルをアップロードします。
フォルダの作成は、左端にある「ファイル」アイコンをクリックし、右クリックで「新しいフォルダ」を選択し作成できます。
expensesフォルダを選択し、アップロードからcsvファイルを全てアップロードします。ファイルを全部を選択し、アップロードします。
データを結合する
csvファイルを読み込み一つのデータにまとめます。
#globはファイル名やフォルダ名を取得するモジュール
#plotly.expresssはグラフを描写するモジュール
#datetimeは日付や時刻を扱うときに使用するモジュール
import pandas as pd
import glob
import plotly.express as px
import datetime
#ファイル名の取得。csvファイルまでのパスを明記
files = glob.glob("./expenses/*.csv")
#データフレームの用意
df = pd.DataFrame()
#ファイルの読み込みと結合
#dfにtmpを結合
for file in files :
tmp = pd.read_csv(file,encoding='S-JIS')
df = pd.concat([df,tmp])
print(df.shape)
print(df.info)
実行結果
データを加工する
データを加工していきます。
加工内容は、必要のない列の削除、不要なデータの削除、カラムの表記を英語に、dateカラムの変更です。
実行結果
支出金額の分布を確認
加工データに対してヒストグラムと箱ひげ図を表示します。
describe関数を使用してデータの各値を確認します。
count:データの数
mean:平均値
std :標準偏差
min :最小値
max :最大値
実行結果より支出の大半が1000円以下で、一番高い買い物は42980円であることがわかります。
高額購入品の行を表示ししてみます。22000円より高い買い物を表示してみます。
項目間の相関
各項目の相関を求めるため、データを縦から横向きに変換します。
週ごとの支出金額を集計したデータができました。これらのデータをヒストグラムで見ていきます。
相関係数はcorr関数で求めることができます。
相関関係をヒートマップで可視化することで相関の強弱がわかります。
色の明るいところが相関が大きいことを表しています。この図から
「衣服・美容」と「交際費」
「通信費」と「水道・光熱費」
「趣味・娯楽」と「交通費」
に正の相関関係があるといえます。