python出租车计费标准_用Python绘制出租车出发点的动态热力图
Hello大家好,歡迎來到【統(tǒng)計GO】,本公眾號定期分享一些好用的數(shù)據(jù)分析工具,幫助大家花更少的時間學更多的知識。
如果本期內(nèi)容(用Python制作出租車出發(fā)點的延時熱力圖)。如果對您有所幫助,記得及時關(guān)注。
背景介紹
對于數(shù)據(jù)分析匯報來說,將地理空間數(shù)據(jù)進行可視化是一個非常強大的工具。
本期內(nèi)容,小編用2016年的打車數(shù)據(jù)集制作了一個Gif動畫,展示了紐約市周一到周日每一小時的打車地點。
數(shù)據(jù)集來自一個以前的Kaggle競賽。在這個數(shù)據(jù)集中,大約有145萬條目包含了2016年1月到6月紐約市的出租車出行信息。
Step1:利用Panda讀取數(shù)據(jù)
原始的數(shù)據(jù)集已經(jīng)進行了預(yù)清理,不包含任何空值,共有11列,如下圖所示:
考慮到本文出發(fā)點,小編只選取了原始數(shù)據(jù)中三個變量:
pickup_datetime
pickup_longitude
pickup_latitude
接下來,通過調(diào)用panda系列的dt.dayofweek()函數(shù),創(chuàng)建一個新列來計算星期數(shù)。這將返回一個從0到6的整數(shù),其中0是Monday, 6是Sunday。最后通過調(diào)用panda系列dt.hourofday()函數(shù),創(chuàng)建另一列獲取小時數(shù)。下面是得到的dataframe的示例:
Step2:利用Folium繪制熱圖
繪制熱力圖的庫有很多,出于個人愛好,小編使用Folium.
接下來,定義一個函數(shù),允許你在你的Jupyter Notebook中以IFrame方式查看地圖,并將地圖保存為.html格式:
為了按時間周期繪制熱圖,使用了一個嵌套的for循環(huán)來迭代每周的每一天和每小時的排列。對于For循環(huán)中的每個迭代,我首先過濾數(shù)據(jù),使其只包括每周一天和每小時的觀察結(jié)果,然后保存這個asdf_geo。
Step3:創(chuàng)建Gif格式的熱力圖
最后一步是將熱圖保存為png格式,并將png文件拼接在一起創(chuàng)建一個gif動畫。
接下來使用selenium包(web開發(fā)人員中流行的自動化工具)來自動化這個過程。要按時間順序打開熱圖并捕捉截圖,使用另一個嵌套的for循環(huán)在Chrome瀏覽器中打開文件,并將每個熱圖文件的截圖保存在指定的文件夾中png格式。
最后是創(chuàng)建gif動畫!首先安裝和導(dǎo)入PIL (Python映像庫)和glob包。然后,定義一個函數(shù)來將一系列png圖像轉(zhuǎn)換為動畫的gif。我所調(diào)用的png_to_gif函數(shù)有三個參數(shù):
path_to_images(表示.png圖像文件保存在哪里);
save_file_path(定位保存.gif文件的文件夾);
每個圖像幀的持續(xù)時間;
這個函數(shù)檢索png圖像并將它們保存為gif動畫的幀。
總結(jié)
步驟1:使用pandas讀取數(shù)據(jù),從pickup_datetime創(chuàng)建日期和星期的列
步驟2:創(chuàng)建一個嵌套的for循環(huán),遍歷每個時間間隔并用folium繪制熱圖。
步驟3:創(chuàng)建gif的熱圖,通過自動截圖捕獲使用elenium包創(chuàng)建的png格式的每個熱圖,然后使用PIL和glob包。轉(zhuǎn)換成一個gif動畫。
總結(jié)
以上是生活随笔為你收集整理的python出租车计费标准_用Python绘制出租车出发点的动态热力图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python多线程实现访问页面_pyth
- 下一篇: sql怎么把小数变百分比_云计算基本技能