手把手教你完成一個數據科學小項目(7):經緯度獲取與BDP可視化

前言

請先閱讀“中國年輕人正帶領國家走向危機”,這鍋背是不背? 一文,以對“手把手教你完成一個數據科學小項目”系列有個全局性的了解。

本系列代碼統一開源在GitHub:DesertsX/gulius-projects ,感興趣的朋友可以先行 star 哈。

截至目前我們已經完成了數據爬取數據提取與IP查詢數據異常與清洗評論數變化情況分析省份提取與可視化城市提取與可視化,本文將調用百度地圖 API 獲取地理位置的經緯度,并使用 BDP 繪制動態熱力圖。

讀取數據

之前系列文章和代碼的最后末尾均可自行保存每次操作后的數據,比如新創建的那些列等等。

import pandas as pd
df = pd.read_csv('Sina_Finance_Comments_All_20180811_Cleaned.csv',encoding='utf-8')
df.head(2)

百度地圖

創建應用

本回使用百度地圖開放平臺的 API 獲取經緯度數據,讀者也可以試下用高德地圖、谷歌地圖等等實現。首先在百度地圖開放平臺(需登錄操作)的“控制臺”處點擊“創建應用”;可以隨意填寫“應用名稱”,比如:地圖經緯度;在“IP白名單”處可按照提示填寫 0.0.0.0/0,方便在不同的電腦上操作,然后點擊“提交”即可創建成功。應用列表里生成了應用,而訪問應用(AK)就是后面調用 API 時所需的參數。

獲取經緯度

Web服務API中找到所需的服務,本次是根據地理信息獲取經緯度,于是正/逆地理編碼,按照服務文檔的說明,調用API。注意調用次數的限制。
正/逆地理編碼 - 百度地圖Web服務API

import requests
def area2coor(area):
    ak = '換成你的ak' # 應用列表里訪問應用(AK)的一串字符
    try:
        # http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding
        address = area
        url = 'http://api.map.baidu.com/geocoder/v2/?address=' + address  + '&output=json&ak=' + ak
        json_data = requests.get(url = url).json()    
        coor_loc = json_data['result']['location']
        return coor_loc
    except:
        return "nocoor" # 不換ak多半都是 'nocoor'
    
print(df.loc[0,'area'])    
area2coor(df.loc[0,'area'])

經緯度

上面先測試下,能拿到經緯度后,創建經緯度列:

%%time
df['coor_loc'] = df.area.apply(area2coor)
df.coor_loc

拆分經度緯度

選出非'nocoor'的數據,再分別拿到經度和緯度,然后就可以導出數據,以便后面在BDP里操作。

df_coor = df[df['coor_loc'] != 'nocoor']
df_coor['lng'] = df_coor['coor_loc'].apply(lambda x: x['lng']) # 經度
df_coor['lat'] = df_coor['coor_loc'].apply(lambda x: x['lat']) # 緯度
df_coor[['lng','lat']]

保存數據

df_coor.to_csv('Sina_Finance_Comments_All_20180811_toBDP.csv', encoding='utf-8', line_terminator='\r\n')

動態熱力圖

古柳以前也用過 BDP,所以這回拿到數據后,就想著間隔近一年的時間后重新繪制動態熱力圖,雖則早已生疏了,但以前機智的寫過一篇“使用手冊”:(送福利)BDP繪制微博轉發動態熱力圖,于是按照文中步驟很快就重新撿回并制作出來了。

具體步驟就不截圖演示了,更詳細的步驟請參考上面給出的文章,內含爬取的微博轉發數據集,可供把玩(用Gephi一則熱門微博的14層轉發網絡圖譜:《Gephi繪制微博轉發圖譜:以“@老婆孩子在天堂”為例》):

此處僅記錄大致操作步驟如下:

  • 網上搜索:BDP個人版,注冊賬號以便使用;
  • 點擊“數據源”,點擊“立即添加”,點擊“CSV上傳”,按照跳出的頁面,上傳本地對應的CSV文件,“逗號”分割,確定后,等待上傳成功后,就能看到數據,此處將相應的時間列,設定為日期,否則后面動態展示時可能會出錯。點擊下一步,改不改文件名,目錄,隨意,之后下一步,完成數據上傳;
  • 點擊菜單欄右上角“新建圖表”,選擇“經緯度地圖”后確定;
  • 經度選擇上傳的CSV數據里的“lng”列,緯度選擇“lat”列,坐標系選擇為百度地圖;
  • 將工作表中文件拖曳到圖層里,就能在地圖上加載出數據,非常簡單地拿到了地圖;

更改設置參數,以便錄制 GIF 時展示效果更佳:

  • 熱力半徑:8像素
  • 時間粒度:按時
  • 時間間隔:2小時 / 1小時
  • 自定義速度:FPS:8 / 12

可根據數據量、數據展示的效果、以及自身的要求自行修改。最后就拿到了文章評論的動態熱力圖,還是蠻酷的。


本系列代碼統一開源在GitHub:DesertsX/gulius-projects ,感興趣的朋友可以先行 star 哈。

本系列文章:
“中國年輕人正帶領國家走向危機”,這鍋背是不背?
手把手教你完成一個數據科學小項目(1):數據爬取
手把手教你完成一個數據科學小項目(2):數據提取、IP 查詢
手把手教你完成一個數據科學小項目(3):數據異常與清洗
手把手教你完成一個數據科學小項目(4):評論數變化情況
手把手教你完成一個數據科學小項目(5):省份提取與可視化
手把手教你完成一個數據科學小項目(6):城市提取與可視化

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,247評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,520評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,362評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,805評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,541評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,896評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,887評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,062評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,608評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,356評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,555評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,077評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,769評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,175評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,489評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,289評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,516評論 2 379

推薦閱讀更多精彩內容