怎么用Python和用戶實(shí)際地理位置做任意區(qū)域人員流量圖

本篇內(nèi)容主要講解“怎么用Python和用戶實(shí)際地理位置做任意區(qū)域人員流量圖”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么用Python和用戶實(shí)際地理位置做任意區(qū)域人員流量圖”吧!

專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)彭山免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

一、首先是數(shù)據(jù)獲取數(shù)據(jù)獲取

騰訊其實(shí)開(kāi)放了數(shù)據(jù)接口,但是只能商用:

怎么用Python和用戶實(shí)際地理位置做任意區(qū)域人員流量圖

經(jīng)過(guò)分析發(fā)現(xiàn),每次請(qǐng)求都會(huì)發(fā)送4個(gè)post請(qǐng)求,每次請(qǐng)求的參數(shù)如下:

怎么用Python和用戶實(shí)際地理位置做任意區(qū)域人員流量圖

怎么用Python和用戶實(shí)際地理位置做任意區(qū)域人員流量圖

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

返回?cái)?shù)據(jù)如下:

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

下面我們開(kāi)始寫寫代碼獲取數(shù)據(jù):

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]

將數(shù)據(jù)轉(zhuǎn)換為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,'經(jīng)度':long,'人數(shù)':weight})

對(duì)數(shù)據(jù)進(jìn)行去重:

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

有了這些坐標(biāo)信息,我們可以估算一個(gè)區(qū)域的人流量

pandas小知識(shí):

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

subset用來(lái)指定特定的列,默認(rèn)所有列;
keep="first"表示刪除重復(fù)項(xiàng)并保留第一次出現(xiàn)的項(xiàng),此外,keep值還可以為'last':表示保留最后一次出現(xiàn)的值;'false':表示所有相同的數(shù)據(jù)都刪除

選定區(qū)域:

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

二、用folium畫(huà)熱力圖:

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

怎么用Python和用戶實(shí)際地理位置做任意區(qū)域人員流量圖

到此,相信大家對(duì)“怎么用Python和用戶實(shí)際地理位置做任意區(qū)域人員流量圖”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

新聞名稱:怎么用Python和用戶實(shí)際地理位置做任意區(qū)域人員流量圖
文章來(lái)源:http://www.muchs.cn/article4/pgdjie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、虛擬主機(jī)、微信公眾號(hào)、標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站