使用Python進行YouBike1.0資料收集與分析

本範例Google Colab網址

以下為舊Youbike資料,資料只到2022年。

使用網址「https://tcgbusfs.blob.core.windows.net/blobyoubike/YouBikeTP.json」,由臺北市資料大平台的YouBike臺北市公共自行車即時資訊(此資料說明網址:https://data.taipei/#/dataset/detail?id=8ef1626a-892a-4218-8344-f7ac46e1aa48)所提供的網址,以json格式回傳最近一分鐘的台北市YouBike站點資訊,以下為回傳結果範例。

{"retCode":1,"retVal":{"0001":{"sno": "0001", "sna": "捷運市政府站(3號出口)", "tot": "180", "sbi": "127", "sarea": "信義區", "mday": "20200307222524", "lat": "25.0408578889", "lng": "121.567904444", "ar": "忠孝東路/松仁路(東南側)", "sareaen": "Xinyi Dist.", "snaen": "MRT Taipei City Hall Stataion(Exit 3)-2", "aren": "The S.W. side of Road Zhongxiao East Road & Road Chung Yan.", "bemp": "51", "act": "1"},"0002":{"sno": "0002", "sna": "捷運國父紀念館站(2號出口)", "tot": "48", "sbi": "2", "sarea": "大安區", "mday": "20200307222529", "lat": "25.041254", "lng": "121.55742", "ar": "忠孝東路四段/光復南路口(西南側)", "sareaen": "Daan Dist.", "snaen": "MRT S.Y.S Memorial Hall Stataion(Exit 2.)", "aren": "Sec,4. Zhongxiao E.Rd/GuangFu S. Rd", "bemp": "44", "act": "1"},"0003":{"sno": "0003", "sna": "台北市政府", "tot": "40", "sbi": "16", "sarea": "信義區", "mday": "20200307222517", "lat": "25.0377972222", "lng": "121.565169444", "ar": "台北市政府東門(松智路) (鄰近信義商圈/台北探索館)", "sareaen": "Xinyi Dist.", "snaen": "Taipei City Hall", "aren": "Taipei City Government Eastgate (Song Zhi Road)", "bemp": "24", "act": "1"},...}}

sno:站點代號、 sna:場站名稱(中文)、 tot:場站總停車格、 sbi:場站目前車輛數量、 sarea:場站區域(中文)、 mday:資料更新時間、 lat:緯度、 lng:經度、 ar:地(中文)、 sareaen:場站區域(英文)、 snaen:場站名稱(英文)、 aren:地址(英文)、 bemp:空位數量、 act:全站禁用狀態

使用request.get擷取YouBike的資料,使用request的函式json進行json格式的解碼成Python的資料結構,每個元素都是字典結構,表示一個YouBike站點,使用函式transform進行格式轉換。

函式transform呼叫函式transform_data轉換每一列資料,從字典轉換成串列,函式transform_data呼叫函式transform_date切割日期字串轉換成datetime物件。

使用pandas將串列資料轉換成DataFrame,將列索引改成日期時間,才能依照日期時間分析。

使用create_df抓取YouBike資料,建立DataFrame,使用DataFrame找出中山女高的附近YouBike站點。

如何找出可用車輛數少於3或者空格為0的車站?