2023/09/07更新
本單元Google Colab記事本共用連結,https://colab.research.google.com/drive/1NegL0HnZUbLuByExedK7w7n0ejRJINeO?usp=sharing
使用網址「https://tcgbusfs.blob.core.windows.net/dotapp/youbike/v2/youbike_immediate.json」,由臺北市資料大平台的YouBike臺北市公共自行車即時資訊(此資料說明網址:https://data.taipei/dataset/detail?id=c6bc8aed-557d-41d5-bfb1-8da24f78f2fb)所提供的網址,以json格式回傳最近一分鐘的台北市YouBike站點資訊,以下為回傳結果範例。
[{'sno': '500101001', 'sna': 'YouBike2.0_捷運科技大樓站', 'tot': 28, 'sbi': 1, 'sarea': '大安區', 'mday': '2023-09-07 13:15:05', 'lat': 25.02605, 'lng': 121.5436, 'ar': '復興南路二段235號前', 'sareaen': 'Daan Dist.', 'snaen': 'YouBike2.0_MRT Technology Bldg. Sta.', 'aren': 'No.235, Sec. 2, Fuxing S. Rd.', 'bemp': 27, 'act': '1', 'srcUpdateTime': '2023-09-07 13:15:42', 'updateTime': '2023-09-07 13:15:52', 'infoTime': '2023-09-07 13:15:05', 'infoDate': '2023-09-07'}, {'sno': '500101002', 'sna': 'YouBike2.0_復興南路二段273號前', 'tot': 21, 'sbi': 1, 'sarea': '大安區', 'mday': '2023-09-07 13:15:05', 'lat': 25.02565, 'lng': 121.54357, 'ar': '復興南路二段273號西側', 'sareaen': 'Daan Dist.', 'snaen': 'YouBike2.0_No.273, Sec. 2, Fuxing S. Rd.', 'aren': 'No.273, Sec. 2, Fuxing S. Rd. (West)', 'bemp': 20, 'act': '1', 'srcUpdateTime': '2023-09-07 13:15:42', 'updateTime': '2023-09-07 13:15:52', 'infoTime': '2023-09-07 13:15:05', 'infoDate': '2023-09-07'},
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的車站?