2015-11-21

[SHARE] Stevey's Blog Rants: Get that job at Google

Stevey's Blog Rants: Get that job at Google
I've been meaning to write up some tips on interviewing at Google for a good long time now. I keep putting it off, though, because it's going to make you mad.…

via Instapaper http://ift.tt/LsykLP

2015-11-01

利用Python Folium建立互動式地圖

Folium


Folium 提供 Leaflet 的 Python API 建立互動式地圖,結合 Python 適合用於資料分析的優勢,同時利用 Python 將分析的數據轉換成互動式地圖。Folium 的使用方式是利用所有的資料點產出一個 HTML 檔案,在這個 HTML 檔案中,會引入 Leaflet 相關的 JavaScript,使用者不需要考慮太多 Leaflet 的問題,只要專注於資料點的產出就好。如果習慣用 Jupyter (IPythonNotebook) 來處理資料,可以參考 examples.ipynb,利用 iframe 將 Folium 產出的互動式地圖嵌入 Jupyter 的 Output 中。

Samples


用一個簡單的專案--tourist-map,來介紹 Folium 的使用方式。這個專案標注台北市內公共場所飲水機、行人專用清潔箱、免費無線上網熱點、公廁的點位資訊,方便遊客搜尋使用。資料的來源為台北市政府資料開放平台。這幾項資料的格式都是 CSV 或 XML,透過 pandasxmltodict 就可以簡單處理。

公共場所飲水機 (data source)


Folium 的使用方式很簡單,先指定地圖的定位點 location 以及起始的放大倍率 zoom_start。接著使用 simple_marker 標註每一個資料點,location 為點的位置,點選標記會跳出的顯示訊息由 popup 提供。設定 clustered_marker=True 會把太靠近的點先組成群組,當地圖放大時才展開,打開這個功能會讓畫面變得比較清爽,而且繪圖時間比較短。



行人專用清潔箱 (data source)


行人專用清潔箱的資料是按照行政區來分檔案,依序讀入12個 CSV 檔案中每個資料點的位置再標注於地圖上即可。



免費無線上網熱點 (data source)


免費無線上網熱點的資料來源為 XML 檔案,利用 xmltodict 將 XML 轉換為 Python 的 dict。接著依照 XML 的結構取出每個資料點的位置,依序標注即可。



公廁 (data source)


處理方式跟上面的一樣。



Reference


* Creating interactive crime maps with Folium