iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 13
0

在資料分析以方面,我們常常使用Python配合Jupyter Notebook的環境在電腦上執行代碼,
但在GCP上,我們也做得到!

開啟Qwikilab,開始實作~(需要有訂閱課程才可以用Qwikilab)
https://ithelp.ithome.com.tw/upload/images/20190916/20120163tX5ebn5gHL.png

首先點Start Lab開始倒數計時~,需要開始倒數計時才能開始實作~(也就是說有時間限制~)
https://ithelp.ithome.com.tw/upload/images/20190916/201201638ySnxiTg4A.png
可以看到開始倒數計時囉,接下來案開啟控制台,並輸入Qwikilab暫時創建的Google帳號及密碼,
就可以進入GCP頁面了!
https://ithelp.ithome.com.tw/upload/images/20190916/20120163MD7uyQ3h1t.png

好的!我們今天的主題是,創建一個IPython環境,並使用BigQuery(使用SQL語法)來分析資料!
在側欄找到AI Platform並點擊Notebook!
https://ithelp.ithome.com.tw/upload/images/20190916/20120163CJ0UiBJJ8g.png
再來進到Notebook頁面後,我們就可以輕鬆地建立一個IPYthon環境啦!
選擇New Instance ,並選擇有TensorFlow版本的Notebookhttps://ithelp.ithome.com.tw/upload/images/20190916/20120163qcL7Tv5jb8.png
按下Create等他跑完,我們就成功地在GCP上創建了一個IPython環境!
那麼等他慢慢跑的同時我們先去BigQuery玩一下我們的資料!
在側欄找到BigQuery點進去進入BigQuery頁面

進到BigQuery後,我們使用標準SQL語法,來從公共資料課裡擷取航班延誤的資訊!

SELECT
  departure_delay,
  COUNT(1) AS num_flights,
  APPROX_QUANTILES(arrival_delay, 5) AS arrival_delay_quantiles
FROM
  `bigquery-samples.airline_ontime_data.flights`
GROUP BY
  departure_delay
HAVING
  num_flights > 100
ORDER BY
  departure_delay ASC

(這裡選取到的資料是出發延誤的航班然後根據他們抵達的延誤時間來分成10組)
點擊RUN
https://ithelp.ithome.com.tw/upload/images/20190916/20120163O2X6ANcEcB.png

好的我們在BigQuery完成了資料的選取~再來,我們利用剛剛創建的IPython環境來視覺化資料。
BigQuery的Result請看下圖
https://ithelp.ithome.com.tw/upload/images/20190916/201201639iHTFtXGEf.png
回到剛剛的NoteBook創建頁面,點擊OPEN JUPYTER LAB 開啟IPython環境。
https://ithelp.ithome.com.tw/upload/images/20190916/20120163491e2xAl8H.png
進去之後開啟一個Notebook,第一個Cell來導入我們剛剛在BigQuery選取的資料!

query="""
SELECT
  departure_delay,
  COUNT(1) AS num_flights,
  APPROX_QUANTILES(arrival_delay, 10) AS arrival_delay_deciles
FROM
  `bigquery-samples.airline_ontime_data.flights`
GROUP BY
  departure_delay
HAVING
  num_flights > 100
ORDER BY
  departure_delay ASC
"""

from google.cloud import bigquery
df = bigquery.Client().query(query).to_dataframe()
df.head()

打上之後執行...
https://ithelp.ithome.com.tw/upload/images/20190916/20120163H8wzUTQAvQ.png

看到輸出完美!再來導入Pandas來處理一下資料!(把資料10%10%分組~)

import pandas as pd
percentiles = df['arrival_delay_deciles'].apply(pd.Series)
percentiles = percentiles.rename(columns = lambda x : str(x*10) + "%")
df = pd.concat([df['departure_delay'], percentiles], axis=1)
df.head()

https://ithelp.ithome.com.tw/upload/images/20190916/201201635YNLrveBGd.png

再來就是重頭戲啦!把他PLOT出來!

without_extremes = df.drop(['0%', '100%'], 1)
without_extremes.plot(x='departure_delay', xlim=(-30,50), ylim=(-50,50));

https://ithelp.ithome.com.tw/upload/images/20190916/20120163qSYSUcqZrN.png
登登!完成Lab!
記得要先END LAB讓Qwikilab評分再把GCP頁面關掉喔~


上一篇
[Day12]機會均等
下一篇
[Day14]Facets
系列文
Google'sMachineLearning-挑戰機器智慧極限30

尚未有邦友留言

立即登入留言