クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

データから問いに答える

このレッスンのあとで: データセットから、平均値、中央値、グループごとの平均を求めて、問いに答えられる。

45分のレッスンコマンド5件JupyterLab データサイエンスラボ:pandas、Matplotlib、scikit-learn をブラウザーで

データ分析で何がわかるのか

データ分析とは、集めた数を計算して、問いの答えを見つけることです。平均値や中央値のような簡単な計算でも、「雨の日は本当に少ないのか」に答えられます。

自転車のシェアサービスは、1年分の記録を持っています。1日ごとの貸し出し数と、その日の天気です。今日はこの表から答えを取り出します。

このレッスンのゴール

メモ

データセットから、平均値、中央値、グループごとの平均を求めて、問いに答えられる。

キーワード

ことばいみれい
平均値全部を足して、個数で割った値10、20、30 の平均値は 20
中央値小さい順に並べたとき、ちょうど真ん中にくる値
範囲最大値から最小値を引いた値
外れ値他の値とくらべて、とても大きいか小さい値
欠損値記録が抜けていて、空っぽになっている値
グループ分け天気ごとのように、行を仲間に分けて計算すること

学生が入力するセルは、このプレビューでは空白です。

始める前に

メモ

上のバーの Start the lab を押してください。起動に1分ほどかかります。Run ボタンを押すと、そのコマンドがターミナルに入力されます。ラボのデータは、毎回同じ365日分です。

平均値と中央値はどう違うのか

平均値は、全部を足して個数で割ります。中央値は、小さい順に並べて真ん中を取ります。個数が偶数のときは、真ん中の2つの平均です。

ふつうは、2つはあまり変わりません。でも、ひとつだけ極端な値があると、平均値は大きく動き、中央値はほとんど動きません。

例: 5日分の貸し出し数

日貸し出し数小さい順
月210180
火180200
水900210(真ん中)
木200220
金220900
平均値(210+180+900+200+220) ÷ 5 = 342
中央値210

学生が入力するセルは、このプレビューでは空白です。

1年分の貸し出し数をまとめる

コマンド
docker exec jupyter python3 steps/summary.py

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

まとめの表の読み方

mean が平均値、50% が中央値、min と max が最小値と最大値です。count は行の数で、365日分あります。

平均値は 270.3、中央値は 273 で、近い値です。極端な日が少ないとわかります。std はばらつきの大きさです。

グループごとに平均を比べる

「雨の日は少ないのか」に答えるには、天気ごとに分けて平均を出します。行を仲間に分けて、仲間ごとに計算するのです。

下の Run で、晴れ、曇り、雨の貸し出し数の平均を見ます。そのあと、土日とそれ以外の平均値と中央値を並べます。

天気ごとの平均を出す

コマンド
docker exec jupyter python3 steps/weather.py

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

土日とそれ以外を比べる

コマンド
docker exec jupyter python3 steps/weekend.py

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

天気の答えを文にする

晴れの日は平均 312.2 回、雨の日は 227.6 回です。雨の日は、晴れの日より84回ほど少ないとわかります。

土日は平均 309.7 回で、平日の 254.6 回より多いです。答えは、数と比べる相手を並べて文にします。「多い」だけでは、何と比べたかが伝わりません。

よくある間違い

注意

平均値がいつも「ふつう」を表すと考える人がよくいます。900 のような外れ値が1つあると、平均値は 342 に跳ね上がり、どの日にも近くありません。外れ値があるときは、中央値も見ましょう。

よごれたデータはどう直すのか

本物のデータは、よごれています。同じ行が2回入っていたり、数が空だったり、「Sunny」と「sunny」が混ざっていたりします。

ラボには、わざとよごした messy.csv が作ってあります。まず、どこがよごれているかを調べます。

よごれたデータを調べる

コマンド
docker exec jupyter python3 steps/messy.py

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

1つずつ手入れする

コマンド
docker exec jupyter python3 steps/clean.py

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

手入れの手順と、その理由

重複した2行は消します。数でない貸し出し数は、取りのぞきます。天気の文字は、空白を消して小文字にそろえます。

99.9 度という気温は、ありえないので空にします。空の気温は、中央値で埋めます。変えたことは、すべて記録しておきます。

さらに挑戦: 1つの月だけ

月ごとに平均を出すと、夏は冬の2倍近く借りられているとわかります。steps/months.py を動かして、一番少ない月を探してみましょう。

そのあと、なぜその月が少ないのかを、気温と雨のデータから言葉で説明してみましょう。

このラボとソースについて: JupyterLab データサイエンスラボ:pandas、Matplotlib、scikit-learn をブラウザーで

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。