※このページではアフィリエイト広告を利用しています

【Python応用】「Pandas」を用いて任意のファイルから列を抽出して基礎的な統計解析する方法

Python

ここではPandasを用いた任意の列を抽出して基礎的な統計解析を行う方法について解説しています。

この記事の対象

  • 統計解析を簡単に求めたい方
  • describe()の使用方法を知りたい方
  • データ読込みから解析までの一連の流れを知りたい方
スポンサーリンク
スポンサーリンク

行ったこと

【Python応用】「Pandas」を用いた複数のCSVファイルの結合からチャート化まで」で作成したファイルの任意の列データを抽出して、基礎的な統計解析を行ってみました。

ここでは、B列におけるデータ数、最大値、最小値、平均値、中央値、標準偏差、分散を求める方法について記しています。

プログラム

import pandas as pd
def write_sh(e_name):
#1---file読込み
    file = e_name
    dfs = pd.read_excel(file)
#2---任意の列取得
    column_name = dfs['open']
#3---解析出力
    count_res = column_name.count()#Data数
    print("Data数=",count_res)
    max_res = column_name.max()#最大値
    print("最大値=",max_res)
    min_res = column_name.min()#最小値
    print("最小値=",min_res)
    mean_res = column_name.mean()#平均値
    print("平均値=",mean_res)
    median_res = column_name.median()#中央値
    print("中央値=",median_res)
    std_res = column_name.std()#標準偏差
    print("標準偏差=",std_res)
    disper_res = column_name.var()#分散
    print("分散=",disper_res)

write_sh("test.xlsx")
#Data数= 2686
#最大値= 2900.0
#最小値= 629.0
#平均値= 1719.1070364854802
#中央値= 1700.0
#標準偏差= 378.47023059637877
#分散= 143239.7154476761

上記がプログラムになります。

基礎的な統計なら数行で求められることが分かると思います。

それでは解説していきます。

#1---file読込み
    file = e_name
    dfs = pd.read_excel(file)

1の部分では引数でファイル名をしているので、引数を基にしてファイルを開いています。

#2---任意の列取得
    column_name = dfs['open']

2の部分では読込んだデータのB列だけを抽出しています。ここでは列名が「open」なので、「’open’」を指定しています。

#3---解析出力
    count_res = column_name.count()#Data数
    print("Data数=",count_res)
    max_res = column_name.max()#最大値
    print("最大値=",max_res)
    min_res = column_name.min()#最小値
    print("最小値=",min_res)
    mean_res = column_name.mean()#平均値
    print("平均値=",mean_res)
    median_res = column_name.median()#中央値
    print("中央値=",median_res)
    std_res = column_name.std()#標準偏差
    print("標準偏差=",std_res)
    disper_res = column_name.var()#分散
    print("分散=",disper_res)

3の部分では解析を行っています。PandasやPythonではC言語のようにfor等を用いてデータを呼び出して計算させる必要がなく、関数になっているものを呼び出すだけで、基礎的な統計を求めることが可能です。

結果

Data数= 2686
最大値= 2900.0
最小値= 629.0
平均値= 1719.1070364854802
中央値= 1700.0
標準偏差= 378.47023059637877
分散= 143239.7154476761

上記が結果になります。

関数化しているので、様々なことに応用できると思うので良かったら使用して下さい。

df.describe()を用いた統計算出

pandasには基礎統計をまとめて算出することができる「describe()」関数があります。上記のように個別で関数を呼び出す必要がないので便利です。

Dataの雰囲気を手っ取り早く知りたい場合に用いるときに便利です。

基本的な型

df.describe(percentiles=None, include=None, exclude=None, datetime_is_numeric=False)

出力結果の項目は「count」「mean」「std」「min」「25%(1/4分位数)」「50%(中央値)」「75%(3/4分位数)」「max」「dtype」になります。

引数としては、「percentiles」は%形式の指定です。デフォルトでは25,50,75になります。「include」はDataの範囲を指定します。デフォルトでは全ての数値が含まれます。

「exclued」は除外するDataを指定します。デフォルトでは何も除外しません。

「datetime_is_numeric」は日時のDatatypeを数値として扱うかの指定です。デフォルトではFalseです。

df.describe()を用いた使用例

import pandas as pd
import numpy as np

#1---file読込み
df = pd.read_csv('test.csv')
te_col = df['open']
t = te_col.describe()
print(t)

読込むファイルは引続き同じものになります。

結果は以下の通りになります。

count    2686.000000
mean     1719.107036
std       378.470231
min       629.000000
25%      1535.000000
50%      1700.000000
75%      1928.750000
max      2900.000000
Name: open, dtype: float64

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