數據分析救星!3 個實用但常被忽略的 Google Colab 功能

相信很多人在做數據分析或資料清理的時候,都會使用 Google Colab、Jupyter Notebook 這些工具,其中 Colab 因為免安裝、易分享、可以跑 GPU 等等的特性,最近越來越多人在使用,老師們在線上課程教學上也很方便,但其實很多人不知道 Colab 有一些比較隱藏容易被忽略的實用功能,學會的話可以讓數據分析更加事半功倍唷!

Interactive Table (互動式表格)

原本的 Colab 表格就跟 Jupyter 表格是一樣的,如果要篩選或排序就要另外利用 Pandas 寫 sort_values、filter 或是 query 的語法,而我最近做爬蟲整理資料時發現,有個功能可以將原本的表格轉為互動式的,直接透過點按來做篩選、排序、分頁等等的效果。

這個功能預設是關閉的,有兩種方式可以轉換成互動式

  • 執行下列程式碼開啟/關閉功能(建議)
from google.colab import data_table
# 開啟功能
data_table.enable_dataframe_formatter()
# 關閉功能
data_table.disable_dataframe_formatter()
  • 在表格輸出後,點擊表格右上方的按鈕

轉換按鈕如下圖的紅框處,但這方法需要每次表格產出時都按一次,如果想要每個表格都直接產出互動式表格的話,還是建議執行上面的程式碼來一次搞定~

轉換後的互動式表格會長下方這樣

閱讀更多»

2021 年的「資料工程師」有哪些常見的技能需求?

前言

近期因為轉換工作面試了不少公司的資料工程師

面試流程不外乎就是「自介」+「考試」+「問問題」

在問問題的環節經常被問到會不會使用某些工具

以下大概整理一下我面試 Data Engineer 最常被問到的幾項技術

閱讀更多»

淺談異常值在資料分析中的重要性

網路上資料分析的課程,遇到像是空值都會教如何去補,用平均值、眾數或往前往後補等等,但遇到異常值 (outlier) 的時候,通常都是教如何判斷並刪除,像是超過三倍標準差就踢除掉之類的方法,但在真實世界中,出現這些異常值都是有原因的,好好思考異常值背後的原因和意義,甚至比一般值的分析還要來得重要。

異常值帶給我的反思

以我個人在數位媒體做資料分析的經驗,有一次在分析 Facebook 粉絲專頁洞察報告時,就發現某個月有 2 篇貼文觸及人數異常地高,是其他貼文的 10 倍以上,不禁讓我反思,在這茫茫數據中出現如此明顯的異常值,真的該按照 SOP 把他們刪掉嗎?

閱讀更多»

將 FastAPI 部署到 AWS API Gateway 教學(配合 Lambda 使用)

本文將教學如何把寫好的 FastAPI 程式碼,配合 AWS Lambda 部署到 API Gateway 上(包含詳細圖文解說 API Gateway 的設定)

前情提要

這篇文章會使用到 AWS Lambda 的函式,若還不清楚怎麼使用的話,推薦可以先看下面這篇文章再回來,如果正在閱讀文章的你已經會使用,那就可以直接往下看囉!

在 AWS Lambda 上使用 Python 第三方套件教學

流程步驟

  1. 建立 API
  2. 設定 API
    • 建立方法
    • 建立資源
  3. 部署 API
  4. 實際呼叫 API 測試

1. 建立 API

首先要確定自己要建立的區域,建議使用比較近的國家地區,例如:東京、大阪、新加坡或香港,因為這將會嚴重影響 API 的速度,我之前誤闖美國東部 Ohio (us-east-2),導致我在 GET / POST 都慢到懷疑人生,所以請先一定要選擇好!

接著就可以進入 AWS API Gateway 的頁面, API 類型選擇「REST API」並點選「建置」,若是第一次在這個國家地區建立 API 的話,會跳出一個教學視窗,大概看一看就可以按確定把它關掉了。

接下來會進入到以下頁面,此時預設可能是「範本 API」,請改成建立「新 API」,並且設定一個「API 名稱」,因為我的 API 是要來收集 cookie 的,所以我命名為 cookie_api,設定完成就可以按「建立 API」。

閱讀更多»

奧運即時比分 LINE 通知 (Python + LINE Notify)

當家裡沒電視、沒辦法看奧運轉播,卻很想知道中華隊現在比數如何的時候,發現 Google 有即時更新的比分,於是打開 F12 看了一下 XHR,有一個開頭是 torspo 的網址一直在送資料,如下圖。

URL = ‘https://www.google.com/async/torspo?ei=wuEEYZkqiLWYBeK8pYAG&yv=3&p3=1&async=emids:%2Fg%2F11fr0b7qvf,id:lu,ctx:%5Bnull%2Cnull%2C%5B%5B%22ev2%22%2C%22clb%22%2C%22tlb%22%2C%22tv%22%2C%22gs2%22%2C%22msv%22%5D%5D%2Cnull%2C1%2Cnull%2C1%2C%5Bnull%2C%5Bnull%2Cnull%2Cnull%2C%22%2Fm%2F05gj2h%22%5D%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2C%5B%22%2Fm%2F0194d%22%5D%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2C%5Bnull%2Cnull%2C%22%2Fm%2F06vvk%22%5D%5D%2C28%2C1%5D,dme:%2Fg%2F11fr0b7qvf,ct:,hl:zh-TW,tz:Asia%2FTaipei,_fmt:jspb’

但這網址除了參數有夠長之外,回應也非常混亂,有很多層的資料,光是解析出來就花了我好多時間,總之比賽國家和比分資訊就是藏在 ["tsp-mr4","tsp-vm"] 這個的後面,就用 regex 加上一些簡單的資料清理把它們抓出來:

閱讀更多»