中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Python和用戶實際地理位置做任意區域人員流量圖

發布時間:2021-11-23 11:51:58 來源:億速云 閱讀:156 作者:iii 欄目:大數據

本篇內容主要講解“怎么用Python和用戶實際地理位置做任意區域人員流量圖”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么用Python和用戶實際地理位置做任意區域人員流量圖”吧!

一、首先是數據獲取數據獲取

騰訊其實開放了數據接口,但是只能商用:

怎么用Python和用戶實際地理位置做任意區域人員流量圖

經過分析發現,每次請求都會發送4個post請求,每次請求的參數如下:

怎么用Python和用戶實際地理位置做任意區域人員流量圖

怎么用Python和用戶實際地理位置做任意區域人員流量圖

rank值從1變化到4,咱也不知道是啥意思,索性就都爬了,大不了再去重

返回數據如下:

主要是locs字段,以第一組數據為例,3295代表緯度信息,11590代表經度信息,分別除100既是經緯度原始值,6代表該位置人數。

下面我們開始寫寫代碼獲取數據:

import requests
import json
header={
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0'}
url = 'https://xingyun.map.qq.com/api/getXingyunPoints'
for i in range(1,5):
    payload = {'count': i, 'rank': 0}
    response = requests.post(url, data=json.dumps(payload))
    datas=json.loads(response.text)['locs']
    datas=datas.split(',')
    datas=[int(i) for i in datas[:-1]]
    all_data=[]
    a=[]
    for n,data in enumerate(datas):
        a.append(data)
        all_data.append(a)
        if (n+1)%3==0:
            a=[]
all_data=[[i[0]/100,i[1]/100,i[2]] for i in all_data]

將數據轉換為DataFrame格式:

import pandas as pd
lat=[float(i[0]) for i in all_data]
long=[i[1] for i in all_data]
weight=[i[2] for i in all_data]
dataframe=pd.DataFrame({'緯度':lat,'經度':long,'人數':weight})

對數據進行去重:

dataframe=dataframe.drop_duplicates(keep='first')

有了這些坐標信息,我們可以估算一個區域的人流量

pandas小知識:

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

subset用來指定特定的列,默認所有列;
keep="first"表示刪除重復項并保留第一次出現的項,此外,keep值還可以為'last':表示保留最后一次出現的值;'false':表示所有相同的數據都刪除

選定區域:

data1=dataframe[(dataframe.緯度.between(39.26,41.03)) & (dataframe.經度.between(115.25,117.30))]

二、用folium畫熱力圖:

import folium
from folium.plugins import HeatMap
map_data = data1[['緯度', '經度', '人數']].values.tolist()
hmap = folium.Map(
    location=[data1['緯度'].mean(), data1['經度'].mean()],  #地圖中心坐標
    control_scale=True, 
    zoom_start=13    #地圖顯示級別
)
hmap.add_child(HeatMap(map_data, radius=5, gradient={.1: 'blue',.3: 'lime', .5: 'yellow',.7:'red'}))

怎么用Python和用戶實際地理位置做任意區域人員流量圖

到此,相信大家對“怎么用Python和用戶實際地理位置做任意區域人員流量圖”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

晋中市| 克什克腾旗| 南江县| 肃南| 育儿| 白河县| 沭阳县| 盐源县| 方正县| 石屏县| 阿克| 濉溪县| 文昌市| 丰台区| 西峡县| 吴忠市| 阜南县| 屯昌县| 亚东县| 富川| 桓仁| 泗水县| 句容市| 林州市| 商城县| 阿巴嘎旗| 海淀区| 华亭县| 新乡市| 新沂市| 宜兴市| 阿克苏市| 揭阳市| 大石桥市| 旬阳县| 涟水县| 塔城市| 浮梁县| 石棉县| 无极县| 太仓市|