Pythonを使ったデータ分析の学習 - その3(Pythonの基礎、データを詳しく見てみる)
巷で評判の良いPythonオンライン教材、『【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門 | Udemy』を購入し、学習してみた。
前回エントリ(jupyter使い始め,データの読み込み,データの表示)はこちらから。
セクション3: まずデータに向き合おう(続き)
Pythonの基礎
旋回は突然のプログラミングだったが、ここで改めてPythonの説明をしてもらえる。
・変数
・関数
・よくあるみす
の3点をそれぞれについて説明。
変数
変数は箱。
数字の5も”あいうえお”という文字も、データフレームも入れられる。
箱の名前は自由につけられる。
関数
エクセルのSUM関数と同じ。
ある規則のある処理をおこないた場合に使う。
関数を使いたい場合は
変数名.関数名(オプション)
train.plot(option)
と記載する必要があり、オプションはカンマで区切ることで複数指定することができる。
※ このオプションのことを引数と言う
変数名.関数名(オプション,オプション)
train.plot(option,option)
データをもう少し詳しく見てみよう
Section3_2.ipynb (教材PART2)
ここから実習。
jupyter/Documents/case1/Section3_2.ipynb を解いていく。
# おまじない import pandas as pd import numpy as np from matplotlib import pyplot as plt %matplotlib inline # データの読み込み train = pd.read_csv("train.csv") # データ先頭行の確認 train.head()
このように表示される。
次は基本統計量を確認する。
どんどん分析計の方向に進んでいる感じがして素晴らしい。
ここでは describe関数を使うとある。
※ スペルミス注意
train.describe()
このように表示される。
この中から読み取れる情報は以下の通り。
・数字の情報のみ基本統計量を引っ張り出す
・count行y列はyが入力されている行数から207行あることがわかる
・count行kcal列は166とあり、入力されていない欄があることがわかる
・meanは平均値
・stdは(standard deviation)標準偏差の略だが今は深く触れない
・minは最小値
・maxは最大値
・50%は中央値(median)
次はデータの型を確認する。
info関数を使う。
train.info()
このように表示される。
この中から読み取れる情報は以下の通り。
なかなか難しいが頑張る。
・non-nullは入力されている欄の数であり、この数はdescribeのときと同じである(例えばyは207入力されている)
・intは整数
・floatは小数点付きの値
・objectは文字列
ここまではtrainの全体感を見てきた。
ここからは特定の値(カラム)に注目していく。
train["y"]
このように表示される。
(ただy列が207行抜き出されただけの状態)
ここからyの平均値と中央値を見てみる。
平均値はmean関数、中央値はmedian関数を使う。
# yについての平均値を求める train["y"].mean() # このように返ってくる 86.6231884057971 # yについての中央値を求める train["y"].median() # このように返ってくる 78.0
ちなみに中央値と平均値は全然別物である(初めて知った)。
わかり易い(しかし極端な)例とともに一応記載しておく。
【平均値】
全部足してそのデータ個数で割った数。
10,20,30,40,1,000の5つの数がある場合の平均値は、
(10+20+30+40+1,000)÷5=220
となる。
【中央値】
全部の数を大きい順(または小さい順)に並べた時に真ん中にくる数。
10,20,30,40,1,000の5つの数がある場合の中央値は、
単純に真ん中(三番目)にある30
となる。
話を戻す。
次はyの値が150以上のデータのみを見てみる。
train[train["y"]>=150]
このように表示される。
だんだん難しくなってきたが、無事表示された。
次は曜日が月曜日だけのデータのみを見てみる。
注意点として、イコールは"=="と記載する必要がある。
これは"="だと代入を表すためである。
train[train["week"]=="月"]
このように表示される。
疲れてきた。
けどあと3つで課題は終わり。頑張る。
続いて曜日が火となっているデータをyで昇順・降順にする。
注意点は以下2点。
・ソートはsort_values関数を使う。sort_values(by="XXX")と書く
・降順にしたい場合はカッコの中にオプションとしてscending=Falseを記載
※昇順にしたい場合はオプションをつけばければ自動で昇順になる
train[train["week"]=="火"].sort_values(by="y")
このように表示される。
確かに火曜日のみが抽出されている。
さらにyがsort(昇順)になっている。
今度は同じように火曜日を抽出し、yで降順に表示させてみる。
※ sort_values関数の最後のsを忘れないように注意
※ Falseの最初の文字は大文字のFなので注意
train[train["week"]=="火"].sort_values(by="y",ascending=False)
このように表示される。
確かに火曜日のみが抽出されている。
さらにyが降順になっている。成功。
最後に曜日が月曜日の時のyの平均値を表示させる。
train[train["week"]=="月"]["y"].mean() # このように表示される 94.05128205128206
これでセクション3: まずデータに向き合おう(続き)の中の『データをもう少し詳しく見てみよう』までを終えた。
今回はここまで。