自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我想帶你去旅行,我用Python提前做了一份端午旅游攻略,請收下!

開發(fā) 后端
旅游是調(diào)節(jié)心情的有效途徑,越來越多的上班族和學生期待利用假期時間外出游 玩來開拓眼界、舒緩壓力。然而真正有了假期,許多人卻會因“去哪玩”的問題倍感困惑,六月份正是出行的好時節(jié),期間還有端午節(jié)小長假,就讓我們一起來學習如何利用python來安排自己的出行計劃吧。

旅游是調(diào)節(jié)心情的有效途徑,越來越多的上班族和學生期待利用假期時間外出游 玩來開拓眼界、舒緩壓力。然而真正有了假期,許多人卻會因“去哪玩”的問題倍感困惑,六月份正是出行的好時節(jié),期間還有端午節(jié)小長假,就讓我們一起來學習如何利用python來安排自己的出行計劃吧。

一.數(shù)據(jù)的獲取

最近幾年,既省錢又休閑的自助游逐漸成為年輕人出行的***,這里推薦一個我個人比較喜歡的旅游網(wǎng)站——螞蜂窩,這次通過分析“驢友”們的出行計劃來規(guī)劃我們自己的行程,***步當然是爬取網(wǎng)站數(shù)據(jù)啦

1.分析目標網(wǎng)頁

為了獲取大家的出行信息,我們進入網(wǎng)站的“結伴”板塊,查看“一個月以內(nèi)”的出行計劃,可以看到隨著頁面的更改url并沒有發(fā)生變化,初步判斷該網(wǎng)頁是通過js加載的,要想爬取首先得找到真實url和返回的數(shù)據(jù)格式。

經(jīng)過一番嘗試,我們成功找到了請求返回的真實url和關鍵參數(shù),這里返回的是json格式的數(shù)據(jù),里面包含了一個html文本。

2.確定抓取內(nèi)容

在正式開始爬取數(shù)據(jù)之前,我們要先確定需要爬取哪些數(shù)據(jù)。行程的列表頁清晰地展現(xiàn)了目的地、行程簡介、發(fā)起人ID和性別(呵呵),雖然這些信息非常有參考價值,但是如果能獲取更多信息無疑會對我們的行程規(guī)劃更有幫助,所以還是要進入詳情頁來看一看。

可以看到,詳情頁中對出發(fā)時間、行程歷時、出發(fā)地點等都有詳細說明,此外還有報名結伴人員情況,這項數(shù)據(jù)能在很大程度上反映小伙伴們的出行意向,所以一定要拿下來。

3.正式爬取數(shù)據(jù)

總體思路是爬取索引頁中每一個行程的發(fā)起人和詳情頁url,之后進入詳情頁抓取出發(fā)時間、歷史、目的地、出發(fā)城市、希望人數(shù)以及報名人員情況等數(shù)據(jù),每個行程的索引頁數(shù)據(jù)和詳情頁數(shù)據(jù)合 并后作為該行程的完整數(shù)據(jù)進行存儲。以下是爬蟲程序的總入口:

  • payload參數(shù):flag決定了行程的排序方式,可選值為1、2、3,分別代表“即將出發(fā)”、“***發(fā)布”、“熱門結 伴”;
  • offset表示當前頁數(shù),默認從0開始;middid表示行程目的地,不確定目的地值為0;timeFlage代表出 發(fā)時間,值為3表示選取一個月內(nèi)的行程。
  • get_info()方法:抓取每一頁的行程信息并翻頁,如果無法獲取有效信息則說明爬取結束。
  • 數(shù)據(jù)存儲:由于數(shù)據(jù)量不大,可以先全部存儲到一個dataframe數(shù)據(jù)結構中,再一次性寫入csv文件。

二. 數(shù)據(jù)清洗

我們來看看獲取到的數(shù)據(jù)是什么樣子的,可以看到,每條數(shù)據(jù)中都有很多干擾信息:

  • “出發(fā)時間”一欄我們想要 的僅僅是日期數(shù)據(jù);
  • “報名人數(shù)”一欄我們想要的僅僅是數(shù)字,而不需要多余的修飾文字等等;
  • “部分出行” 計劃涵蓋了多個目的地,這對我們的旅游目的地分析是非常不利的

所以,我們必須先對獲取到的數(shù)據(jù)進行清洗, 以期為正式的數(shù)據(jù)分析奠定基礎。

1.規(guī)范格式

首先對歷時、希望人數(shù)、報名人數(shù)(女)、報名人數(shù)(男)這幾項數(shù)據(jù)進行清洗,僅保留數(shù)字部分;其次對出發(fā)是 按、出發(fā)地點相關數(shù)據(jù)進行情況,取到“:”及前面的內(nèi)容。感謝pandas.Series.str方法,使我們可以非常簡單地完 成上述工作,功能函數(shù)如下:

only_num(self, col_list):去除數(shù)據(jù)中的非數(shù)字部分。

no_colon(self, col_list):去除數(shù)據(jù)中的“:”及其前面的內(nèi)容。

2.拆分目的地

剛才說到過,一個行程中包含多個目的地會對我們的分析造成干擾,這里的解決思路是對目的地數(shù)據(jù)進行拆分。

將一列數(shù)據(jù)拆分成X列(X為該行程包含的目的地個數(shù)),同樣是使用pandas.Series.str方法,代碼如下:

三.數(shù)據(jù)分析

現(xiàn)在我們可以對數(shù)據(jù)進行分析查找六月份的旅行規(guī)律了,為了便于觀察,這里使用pyecharts進行可視化處理。

1.男女比例

首先對參與出行計劃的人員性別進行分析,利用dataframe的sum()和groupby().count()方法可以很容易獲得行程 發(fā)布者和參與者的性別分布:

從圖中可以看出,發(fā)起人以女性居多,約占總數(shù)的60%,而參與者剛好相反,男性比 例約為60%,估計是女同胞們更擅長精心策劃行程,而男同胞們大多比較“懶”吧~

2.出發(fā)時間

這里我們首先用dataframen的groupby()方法,以“出行時間”為關鍵字對數(shù)據(jù)進行分組,分別統(tǒng)計每天的行程數(shù)量 和參與者數(shù)量,然后畫出折線圖。

從結果來看,6月15、16兩天是六月份出行的高峰期(這個時間剛好開始端午節(jié)假期),端午節(jié)有出行計劃的朋友 們記得提前準備哈。除此之外的幾個波峰也都出現(xiàn)在周末,看來喜歡自助游的朋友中還是上班族(也可能是大學 生)居多啊。

3.目的地選擇

先來分析行程發(fā)布數(shù)據(jù),首先將數(shù)據(jù)中所有的目的地加入到一個list中(包含重復數(shù)據(jù)),然后使用collections中的Counter()方法統(tǒng)計每個目的地出現(xiàn)的頻次,***制圖。

圖中列出了頻次較高的幾個目的地,彩條越長表示出現(xiàn)的頻次越多。稍微留意下我們會發(fā)現(xiàn),大家比較青睞的都是一些商業(yè)化程度比較低的地區(qū),比如拉薩,新疆!

其實作為一名自由行愛好者,我同樣比較喜歡更加原始和純粹的風光,對于沉淀心情確實會起到更好的效果,大家如果有出行計劃又不知道去哪玩的話,不妨從上面的目的地中選一下。

[[232787]]

4.參與者情況如何

首先分別統(tǒng)計出各個目的地報名的男性數(shù)量和女性數(shù)量儲存到兩個dict中,分別取參與 人數(shù)最多的10個目的地,***將兩組數(shù)據(jù)合并、去重......

然后我們會驚奇地發(fā)現(xiàn),雖然兩個序列中具體排名不盡相 同,但是男性和女性最想去的10個目的地居然完全一致。

不過各個地點的男女人數(shù)還是有較大差異的,如果想來一場***的邂逅,或許下面這張圖會有點幫助哈。

 

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2021-05-18 09:12:40

TCP網(wǎng)絡分層網(wǎng)絡協(xié)議

2022-02-23 07:50:36

LinuLinux操作系統(tǒng)

2016-08-24 16:55:18

DevOps結構清單

2024-11-07 08:50:56

用戶分析分類維度標簽

2023-09-01 14:02:25

用戶分析攻略

2020-07-15 15:09:21

Python掃雷游戲Windows

2025-03-06 13:10:32

2020-11-16 09:02:38

Python開發(fā)工具

2022-10-20 12:11:32

數(shù)據(jù)數(shù)據(jù)分析分類維度

2019-04-28 11:48:54

Python面試工程師

2020-05-08 13:28:53

新擬物UI設計

2018-10-17 12:33:14

2022-06-08 08:14:27

Dubbo數(shù)據(jù)包源代碼

2019-11-04 15:22:28

Python區(qū)塊鏈數(shù)據(jù)

2018-05-09 11:04:35

Java程序員大數(shù)據(jù)

2020-10-22 09:37:20

Vue開發(fā)優(yōu)化

2022-02-28 11:26:40

模型深度學習谷歌

2021-04-29 15:53:21

AI 數(shù)據(jù)人工智能

2021-09-30 07:52:06

AbortSignalpromiseAPI
點贊
收藏

51CTO技術棧公眾號