国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

北京全年天氣狀況分析

wupengyu / 2675人閱讀

摘要:對(duì)個(gè)月份進(jìn)行抓取后再匯總,就得到了北京年全年的天氣數(shù)據(jù),包括最高溫度最低溫度天氣狀況風(fēng)向等信息。按月查看溫度走勢(shì)日期天氣狀況分布天氣狀況晴天和多云是北京一年中主要的天氣。北京的降水天數(shù)不多,主要在月份。

本文來自 @范洺源 投稿,在其基礎(chǔ)上做了點(diǎn)修改

最近在學(xué)爬蟲和數(shù)據(jù)分析,看到 天氣網(wǎng) 上有國內(nèi)城市一年的天氣歷史數(shù)據(jù),想以此為數(shù)據(jù)源練習(xí)一下,于是就有了這個(gè)項(xiàng)目。今天在此簡(jiǎn)單介紹一下實(shí)現(xiàn)思路和最終效果。

用到的相關(guān)庫包括:

requests

bs4

pandas

matplotlib

seaborn

pyecharts

分析數(shù)據(jù)源

天氣網(wǎng)的 歷史天氣預(yù)報(bào)查詢 頁面( http:// lishi.tianqi.com/)上有各城市的數(shù)據(jù)。以 北京 為例,打開頁面之后經(jīng)過簡(jiǎn)單的嘗試就可以發(fā)現(xiàn),每個(gè)月的數(shù)據(jù)是以 http://lishi.tianqi.com/{城市的拼音}/{年份+月份}.html 這樣的地址來展示的,于是可據(jù)此構(gòu)建一個(gè)函數(shù),函數(shù)的作用是默認(rèn)返回北京市2018年1月到12月的 url:


def get_url(city="beijing"):
    for time in range(201801,201813):
        url = "http://lishi.tianqi.com/{}/{}.html".format(city,time)
        yield url
爬取數(shù)據(jù)

有了 url 地址就可以用 requests 來抓取。這里要注意,得加上自己的 cookies ,否則會(huì)返回 404 頁面,應(yīng)該是對(duì)方網(wǎng)站做了反爬。拿到返回值之后,我用 bs4 庫的 select 函數(shù)提取數(shù)據(jù)。select 函數(shù)使用的是 css 選擇器 的語法。由于需要進(jìn)行一定的數(shù)據(jù)分析,所以這里沒有將數(shù)據(jù)保存到文件,而是直接使用 pandasdataframe 進(jìn)行儲(chǔ)存。


 html = requests.get(url=url, headers=header, cookies=cookie)
soup = BeautifulSoup(html.content, "html.parser")
date = soup.select("#tool_site > div.tqtongji2 > ul > li:nth-of-type(1) > a")
max_temp = soup.select("#tool_site > div.tqtongji2 > ul > li:nth-of-type(2)")
min_temp = soup.select("#tool_site > div.tqtongji2 > ul > li:nth-of-type(3)")
weather = soup.select("#tool_site > div.tqtongji2 > ul > li:nth-of-type(4)")
wind_direction = soup.select("#tool_site > div.tqtongji2 > ul > li:nth-of-type(5)")
date = [x.text for x in date]
max_temp = [x.text for x in max_temp[1:]]
min_temp = [x.text for x in min_temp[1:]]
weather = [x.text for x in weather[1:]]
wind_direction = [x.text for x in wind_direction[1:]]
data = pd.DataFrame([date,max_temp,min_temp,weather,wind_direction]).T

對(duì)12個(gè)月份進(jìn)行抓取后再匯總,就得到了北京2018年全年的天氣數(shù)據(jù),包括 最高溫度、最低溫度、天氣狀況、風(fēng)向 等信息。適當(dāng)加工下信息,我們用一些圖表來進(jìn)行可視化的展示:

平均溫度的分布

 seaborn.distplot(result["平均溫度"])

平均溫度是使用每日最高溫度和最低溫度取平均的值。北京平均溫度在0度和20多度的日子是最多的。

按月查看溫度走勢(shì)

 result.groupby(result["日期"].apply(lambda x:x.month)).mean().plot(kind="line")

天氣狀況分布

 seaborn.countplot(result["天氣狀況"])

晴天和多云是北京一年中主要的天氣。

各月降水天數(shù)統(tǒng)計(jì)

 line = pyecharts.Line("各月降水天數(shù)統(tǒng)計(jì)")
line.add("降水天數(shù)", month, is_rain, is_fill=True, area_opacity=0.7, is_stack=True)
line.add("未降水天數(shù)", month, no_rain, is_fill=True, area_opacity=0.7, is_stack=True)

這里用 pyecharts 做了一個(gè)堆疊折線圖。北京的降水天數(shù)不多,主要在7、8月份。可以對(duì)比下重慶的數(shù)據(jù),差別就很明顯了:

風(fēng)向統(tǒng)計(jì)

 directions = ["北風(fēng)", "西北風(fēng)", "西風(fēng)", "西南風(fēng)", "南風(fēng)", "東南風(fēng)", "東風(fēng)", "東北風(fēng)"]
schema = []
v = []
days = result["風(fēng)向"].value_counts()
for d in directions:
    schema.append((d,100))
    v.append(days[d])
v = [v]
radar = pyecharts.Radar()
radar.config(schema)
radar.add("風(fēng)向統(tǒng)計(jì)", v, is_axisline_show=True)

為了讓結(jié)果更加直觀,這里采用了 pyecharts 里的 雷達(dá)圖 ,并且將8個(gè)維度按真實(shí)方向的角度來排列。通常認(rèn)為,北京冬季盛行西北風(fēng),夏季盛行東南風(fēng)。不過從數(shù)據(jù)上來看,西南風(fēng)才是北京2018年的最熱門的風(fēng)向。

以上就是我這個(gè)項(xiàng)目所做的工作,內(nèi)容還是比較基礎(chǔ)的。大家可以做進(jìn)一步的擴(kuò)展,比如爬取其他的城市,然后進(jìn)行全國多城市的天氣比較,或者結(jié)合地圖進(jìn)行可視化。

幾個(gè)相關(guān)庫的官網(wǎng)都很不錯(cuò),供參考:

requests http://cn.python-requests.org/zh_CN/latest/

bs4 https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/

pyecharts http://pyecharts.org/

seaborn http://seaborn.pydata.org/

pandas https://pandas.pydata.org/

文章源碼及相關(guān)文件已上傳,獲取代碼及可視化效果可在公眾號(hào)( Crossin的編程教室 )回復(fù)關(guān)鍵字 天氣

本文是我們編程教室新春征稿活動(dòng)的一篇投稿,來自 @ 范洺源 同學(xué)。

我們編程教室會(huì)持續(xù)向所有人開放,如果有投稿或參與志愿者的意向,歡迎隨時(shí)在公眾號(hào)里給我們留言。

Python | 新手引導(dǎo) | 一圖學(xué)Python
開發(fā)案例:智能防擋彈幕 | 紅包提醒 | 流浪地球 | 漫威
歡迎搜索及關(guān)注: Crossin的編程教室

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/43523.html

相關(guān)文章

  • 用機(jī)器學(xué)習(xí)識(shí)別不斷變化的股市狀況—隱馬爾科夫模型(HMM)的應(yīng)用

    摘要:在本文中,我們將通過使用一類強(qiáng)大的機(jī)器學(xué)習(xí)算法隱馬爾科夫模型來探索如何識(shí)別不同的股市狀況。隱馬爾科夫模型馬爾科夫模型是一個(gè)概率過程,查看當(dāng)前狀態(tài)來預(yù)測(cè)下一個(gè)狀態(tài)。通過隱馬爾科夫模型,可以深入了解不斷變化的股市狀況。 showImg(https://segmentfault.com/img/bVUlGu?w=913&h=515); 了解不同的股市狀況,改變交易策略,對(duì)股市收益有很大的影響...

    lookSomeone 評(píng)論0 收藏0
  • 貓叔產(chǎn)品讀記 | 全時(shí)關(guān)店潮、那些記得住的2019春節(jié)營銷案例(2期)

    摘要:全時(shí)關(guān)店潮氪獲得的一份內(nèi)部資料顯示,自去年月以來,全時(shí)便利店在北京關(guān)店約家截至月日,全時(shí)在北京的店鋪還有家左右。這意味著該輪關(guān)店比例超過。 本博客 貓叔的博客,轉(zhuǎn)載請(qǐng)申明出處 前言 本系列為貓叔綜合整理的Java面試題系列,如有雷同不勝榮幸。 前言 本系列主要是貓叔對(duì)互聯(lián)網(wǎng)相關(guān)產(chǎn)品(兼任產(chǎn)品經(jīng)理)路上的視野擴(kuò)展與信息記錄,每日三篇,記錄分享。 全時(shí)關(guān)店潮 36氪獲得的一份內(nèi)部資料顯示,...

    spademan 評(píng)論0 收藏0
  • 守護(hù)城市安全:時(shí)空數(shù)據(jù)+深度學(xué)習(xí)

    摘要:上周,在舊金山召開的人工智能國際較高級(jí)會(huì)議上,來自微軟亞洲研究院的鄭宇博士及其團(tuán)隊(duì)的論文首創(chuàng)性的將時(shí)空數(shù)據(jù)與深度學(xué)習(xí)結(jié)合起來,利用時(shí)空深度殘差網(wǎng)絡(luò)用于預(yù)測(cè)城市人流問題。 上周,在舊金山召開的人工智能國際較高級(jí)會(huì)議AAAI 2017上,來自微軟亞洲研究院的鄭宇博士及其團(tuán)隊(duì)的論文Deep Spatio-Temporal Residual Networks for Citywide Crowd F...

    CarlBenjamin 評(píng)論0 收藏0
  • 簡(jiǎn)歷大數(shù)據(jù)公司全員被抓,HR要注意什么?

    摘要:日前,簡(jiǎn)歷大數(shù)據(jù)公司巧達(dá)科技被警方一鍋端,高管和員工全部被帶走。買賣簡(jiǎn)歷,直接違法。三人累計(jì)販賣個(gè)人簡(jiǎn)歷萬余份,智聯(lián)招聘由此蒙受損失近日前,簡(jiǎn)歷大數(shù)據(jù)公司巧達(dá)科技被警方一鍋端,高管和員工全部被帶走。到底發(fā)生了什么? ?一 、為什么公司全員被抓? 3月14日?qǐng)F(tuán)隊(duì)被警方帶走,有HR等非核心成員回家,但核心高管依然失聯(lián)中。3月25日,一位巧達(dá)科技前員工告訴燃財(cái)經(jīng)。 在天眼查中北京...

    Loong_T 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<