Pythonを使って度数分布表とヒストグラムを書く

データ分析
Sponsored Link

 

統計で一番最初に勉強するのが、度数分布表とヒストグラムです。

Pythonで度数分布表とヒストグラムを描いてみましょう。

度数分布表のためのデータは、例題で学ぶ統計入門での演習問題で使われている、過去40日間の救急車出動回数模擬データを、excel ファイルにまとめたものを使っています。

プログラミングを勉強したい!! プログラミングに興味がある!!
そんなあなたへのおすすめ記事
無料体験あり、キャッシュバック有りプログラミングスクールおすすめはこちら

 

Excel データの読み込みと整形

まずはデータを「pd.read_excel()」関数を使って読み込みます。

import pandas as pd
import numpy as np

ambulance_Dep = pd.read_excel("ambulance.xlsx")
ambulance_Dep


DataFrameをよく見ると、出動回数の前にインデックス番号「0」がついていますね。

このままでは後々処理がしにくいので、「出動回数」そのものを「.set_index()」関数を使って、インデックスにしてしまいます。

ambulance_Dep.set_index("Unnamed: 0", inplace=True)
ambulance_Dep

次に、DataFrameをSeriesに変換します。

ambulance_Dep_s = ambulance_Dep.loc['出動回数',:]
ambulance_Dep_s

ambulance_Dep_s.describe()

度数分布表を作る

度数分布表を作るために必要なのが、階級の数をどうするかですが、それはスタージェスの公式で求められます。

これを実装してみると、以下の通り。

# 度数分布表を作る
# スタージェスの公式から階級の数を求める
from math import log
class_size = 1 + log(len(ambulance_Dep_s), 2)
print(class_size)
6.321928094887363

階級の数は6に設定することにしました。

次に階級の幅を求める必要がありますので、実装してみましょう。

# 階級の幅を求める
class_width = (max(ambulance_Dep_s) - min(ambulance_Dep_s))/6
print(class_width)
0.8333333333333334

ということで階級値を1に設定します。

階級の数、階級値が定まったらデータを各階級に振り分けていきます。

# 階級に振り分ける
# 各観測値を階級値にする
def frequency_distribution(ambulance_Dep_s, class_with):
cut_data = []
for colmun in ambulance_Dep_s:
cut = colmun // class_with
cut_data.append(cut)
return cut_data
#頻度を数える
frequency_data = pd.Series(frequency_distribution(ambulance_Dep_s, 1)).value_counts()
print(frequency_data)

度数分布表の並び順がバラバラなので、順番を整えてみます。

# インデックスでソートする
F_data = frequency_data.sort_index()
F_data

コードを書くにあたっては、こちらこちらのサイトを参考にさせていただきました。

ヒストグラムで表示する

このデータをヒストグラムに落とし込んでみようと思いますが、その前にデータを反転させます。

もっと別なやり方があるかもしれませんが、まだ発見できてないのです。

「.T」を使ってDataFrameを反転させます。

ambulance_Dep_t = ambulance_Dep.T
ambulance_Dep_t

ヒストグラムを表示してみましょう。

import matplotlib.pyplot as plt
ambulance_Dep_t['出動回数'].hist(bins=6)
plt.show()

いい感じのヒストグラムができましたね。

結果から読み取れることは、過去40日間で一日2回出動した日が14日あり、一回も出動していない4日間を除いてすべて出動があったということになります。

プログラミングを勉強したい!! プログラミングに興味がある!!
そんなあなたへのおすすめ記事
無料体験あり、キャッシュバック有りプログラミングスクールおすすめはこちら

 

関連記事

Python を使ったスクレイピングから棒グラフの作成
ウェッブサイトから必要な情報を抜き出す、スクレイピングから棒グラフの作成までをやってみました。 簡単かと思えましたが、時間かかってしまったんで今後のためにメモ書いておきます。 ではまずスクレイピングから見ていきましょう。 プロ...
Python データ整理:行の抽出と並べ替え
ニュースで見たインドの火葬の現場、薪を大量に使っていました。 しかし、インドってそんなに森林資源があったかと思ったので、さっそく調べてみました。 データはGlobal Forest Watch のインドから抽出しました。 ...
Sponsored Link

コメント

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