2019年11月からマレーシアにて大学院留学予定、留学やマレーシアについても更新しています。

稼げる大学学位は何なのか?Pythonで分析し視覚化してみる#1

稼げる大学学位は何なのか?Pythonで分析し視覚化してみる#1

Hello there! Stefanoです。

2019年11月からマレーシアの大学院APUにてデータサイエンスを学ぶので、

Pythonを使ったデータ分析について学習したことを備忘録として記録していこうと思います。

誰かの役にたったらとおもいながら・・・

マレーシア大学院留学についてはこちらを参照してください。

私が通うマレーシアの大学院APU(アジアパシフィック大学)をご紹介します

 

今日はpythonを使ったデータ分析の一例を紹介するよ!

これから紹介する内容はデータサイエンス専門のオンライン学習サイト「Dataquest」の教材を参考にしています。

教材は全て英語なので一部翻訳しながら紹介していきます。

プログラミングは英語のまま理解したほうがわかりやすいと思うんですよ

それに直訳すると違和感を感じることが多い!

必要であればgoogle翻訳使ってあげてくだい。

教材に関してはGithubにポートフォリオとして管理しても良い部分から抜粋しています。

プロジェクトの概要

ということで、

本日のテーマは「最も稼げる大学学位は何なのか?」

Pythonでデータセットを分析し、グラフで視覚化して解明していきます。

今回のモデルアンサーはこちら

2010年から2012年の間にカレッジを卒業した生徒のJobに関するデータセットを用いて分析していきます。

オリジナルデータ(加工前)は American Community Survey によって調査されたもの。

このオリジナルデータを「FiveThirtyEight」がデータセットのクリーニングをを行い、Github repo 上にリリースしています。

データセットにおける各行はカレッジにおける各種専攻に関するデータ、

各列はジェンダー(性別)や雇用率、平均給与による違いなどの多くの情報が含まれています。

We’ll be working with a dataset on the job outcomes of students who graduated from college between 2010 and 2012. The original data on job outcomes was released by American Community Survey, which conducts surveys and aggregates the data. FiveThirtyEight cleaned the dataset and released it on their Github repo.

Each row in the dataset represents a different major in college and contains information on gender diversity, employment rates, median salaries, and more. 

列:カラム名

英語のままです、詳しく知りたい方はgoogle翻訳使ってください。

  • Rank – Rank by median earnings (the dataset is ordered by this column). 
  • Major_code – Major code.
  • Major – Major description.
  • Major_category – Category of major.
  • Total – Total number of people with major.
  • Sample_size – Sample size (unweighted) of full-time.
  • Men – Male graduates.
  • Women – Female graduates.
  • ShareWomen – Women as share of total.
  • Employed – Number employed.
  • Median – Median salary of full-time, year-round workers.
  • Low_wage_jobs – Number in low-wage service jobs.
  • Full_time – Number employed 35 hours or more.
  • Part_time – Number employed less than 35 hours.

プロジェクトの目的

視覚化を使って、こんなことを調査していきます。

  • 最も人気のある専攻の学生はよりお金を稼いでいるのか?(散布図)
  • 男性女性において支配的な専攻は?(ヒストグラム)
  • 最も人気のある専攻分野は?(棒グラフ)
  • Do students in more popular majors make more money?
    • Using scatter plots
  • How many majors are predominantly male? Predominantly female?
    • Using histograms
  • Which category of majors have the most students?
    • Using bar plots

We’ll explore how to do these and more while primarily working in pandas. Before we start creating data visualizations, let’s import the libraries we need and remove rows containing null values.

欠損値をデータセットから除き、matplotlibを使えるようにする

今回使用するのは Anacondaに標準で含まれるjupyter notebookを用いてコードを書いていきます。

インストール方法はこちらを参照

ここでのモデルアンサー

データセットの準備

・ライブラリであるpandas、matplotlibをimportを使ってインポート

・jupyter notebookでmatplotlibを使って視覚化したグラフなどを表示できるように%matplotlib inline 

・用意したデータセットをデータフレームとして準備し、中身を確認

・pandasでrecent-grads.csv を読み、データフレームとして変数recent_gradsにアサインする

・DataFrame.iloc[]を使って最初のrowをtableとして返し内容をデータ確認

・DataFrame.head() と DataFrame.tail() を使い最初と最後から各5行分のデータ確認

・recent_grads の行の数をlen()を使って確認し、結果をraw_data_countにアサインする

ここで、出力結果が173となればOKです。

データフレーム内の欠損値を取り除く

Matplotlibは、欠損値をスキップするような線を描画できないので、

データフレームから欠損値を取り除くことにします。

・DataFrame.dropna() を使い欠損値を含む行を取り除き、取り除いたデータフレームを再度recent_gradsにアサインする

・再度recent_grads の行の数をlen()を使って確認し、その結果をcleaned_data_count にアサイン

出力結果が172となっていればOKです。

欠損値を含む行が取り除かれたことになります。

これでエラーなくMatplotlibでグラフを描けるようになります。

今回のまとめ

「最も稼げる大学学位は何なのか」を調査するために必要なデータフレームから、欠損値を取り除くことでMatplotlibでグラフ表示ができるようにしました。

次回は実際にMatplotlibを使い、散布図やヒストグラム、棒グラフを作成していきます。

次回はこちらから 現在作成中