版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
湖南商務職業(yè)技術學院畢業(yè)設計
目錄
1引言........................................................................................................................1
1.1項目背景.........................................................................................................1
1.2開發(fā)環(huán)境與工具.............................................................................................1
1.2.1Requests簡介.....................................................................................1
1.2.2Hadoop簡介.........................................................................................2
1.2.3Pandas簡介.........................................................................................2
1.2.4Pyecharts簡介...................................................................................3
2需求分析................................................................................................................3
2.1可行性需求分析.............................................................................................3
2.2采集目標功能分析.........................................................................................4
2.3關鍵技術分析.................................................................................................4
2.3.1網絡爬蟲技術......................................................................................4
2.3.2數據存取技術......................................................................................4
2.3.3可視化技術..........................................................................................5
3數據采集................................................................................................................5
3.1采集頁面分析.................................................................................................5
3.2爬蟲策略分析.................................................................................................6
3.3創(chuàng)建python項目...........................................................................................7
3.4爬蟲核心代碼編寫.........................................................................................8
3.5運行項目.......................................................................................................10
4數據清洗與處理..................................................................................................11
4.1數據清洗.......................................................................................................11
4.2代碼實現(xiàn).......................................................................................................11
4.3數據存儲.......................................................................................................12
5數據統(tǒng)計與分析..................................................................................................13
5.1數據準備.......................................................................................................13
5.2數據展示.......................................................................................................15
I
湖南商務職業(yè)技術學院畢業(yè)設計
5.2.1統(tǒng)計公司發(fā)布職位的數量................................................................15
5.2.2統(tǒng)計平均工資最高的10個公司......................................................16
5.2.3統(tǒng)計長沙市各區(qū)發(fā)布職位的數量....................................................18
5.2.4統(tǒng)計工資最高的10個職位..............................................................20
5.3綜述...............................................................................................................21
6小結......................................................................................................................22
參考資料.........................................................................................................................23
II
湖南商務職業(yè)技術學院畢業(yè)設計
趕集網長沙市招聘數據采集與分析
1引言
趕集網長沙市招聘數據采集與分析項目致力于深入挖掘長沙市招聘市場的
動態(tài)信息,為求職者提供準確全面的職位信息和就業(yè)趨勢分析,同時為企業(yè)提
供招聘需求和人才市場的洞察。本項目將采用先進的數據采集技術,通過爬蟲
程序自動抓取趕集網長沙市招聘板塊的各類招聘信息,涵蓋行業(yè)廣泛、職位多
樣的特點,保證數據的及時性和全面性。隨后,利用數據清洗和處理技術對采
集到的數據進行清洗、整理和格式化,確保數據的準確性和一致性。在數據準
備工作完成后,將利用數據分析和挖掘方法,對招聘市場的行業(yè)分布、職位需
求、薪資水平等進行深入分析,為求職者和企業(yè)提供有價值的參考和決策支持。
通過本項目的實施,旨在為長沙市的求職者和企業(yè)提供更加便捷、精準的招聘
信息服務,促進長沙市的人才流動和市場的穩(wěn)定發(fā)展。
1.1項目背景
趕集網長沙市招聘數據采集與分析項目的背景源于長沙市就業(yè)市場的迅速
發(fā)展和求職者與企業(yè)之間信息不對稱的現(xiàn)狀。隨著經濟的快速增長和產業(yè)結構
的不斷優(yōu)化,長沙市招聘市場需求日益多樣化,求職者和企業(yè)對于招聘信息的
準確性和及時性需求日益增加。然而,目前市面上的招聘信息平臺存在信息更
新不及時、數據質量參差不齊等問題,導致求職者在找工作時面臨信息不足的
困境,企業(yè)在招聘時難以準確把握市場需求。因此,本項目旨在利用先進的數
據采集和分析技術,從趕集網長沙市招聘板塊獲取最新、全面的招聘信息,通
過數據分析和挖掘技術深度解讀招聘市場的行業(yè)熱點、職位趨勢、薪資水平等
關鍵信息,為求職者提供更加準確全面的求職信息,為企業(yè)提供更精準的人才
招聘和市場分析服務,促進長沙市招聘市場的健康發(fā)展,助力長沙市經濟的持
續(xù)繁榮。
1.2開發(fā)環(huán)境與工具
1.2.1Requests簡介
equests是一個基于Python的HTTP庫,用于發(fā)送HTTP請求和處理
HTTP響應。它提供了簡單易用的API,使得在Python中進行網絡請求變得非
1
湖南商務職業(yè)技術學院畢業(yè)設計
常方便。requests支持多種HTTP方法,如GET、POST、PUT、DELETE等,同
時支持設置請求頭、請求參數、Cookie等各種請求選項。通過requests發(fā)送
的請求可以獲取網頁內容、API數據等,并且可以對響應內容進行解析和處理。
requests還提供了異常處理和會話管理等功能,使得開發(fā)者能夠更加靈活和高
效地處理網絡請求。由于其簡潔的接口設計和豐富的功能特性,requests成為
了Python中最受歡迎的HTTP請求庫之一,被廣泛應用于網絡爬蟲、數據采
集、API調用等各種場景中。在趕集網長沙市招聘數據采集與分析項目中,我
們可以利用requests發(fā)送HTTP請求獲取趕集網的招聘頁面內容,然后通過
解析網頁內容提取目標信息,實現(xiàn)數據的采集和分析。
1.2.2Hadoop簡介
Hadoop是一個開源的分布式存儲和計算平臺,用于處理大規(guī)模數據集。其
核心包括分布式文件系統(tǒng)HDFS和分布式計算框架MapReduce。HDFS能夠將大
量數據分布存儲在廉價的硬件設備上,并提供高容錯性和高可靠性的數據存儲
服務。MapReduce則是一種分布式計算模型,可以對存儲在HDFS上的數據進
行并行化處理,通過將任務分解為多個子任務并在集群中的多臺計算節(jié)點上并
行執(zhí)行,實現(xiàn)對大規(guī)模數據的高效處理和分析。Hadoop還包括其他一些組件,
如YARN(資源調度和管理器)、Hive(基于SQL的數據倉庫)、HBase(分布
式NoSQL數據庫)等,用于支持不同的數據處理和分析需求。在趕集網長沙市
招聘數據采集與分析項目中,我們可以利用Hadoop提供的MapReduce框架對
爬取下來的數據進行清洗和預處理,例如剔除特殊字符、格式化數據等,以便
后續(xù)的數據分析和挖掘工作。Hadoop的分布式計算能力和可擴展性使其成為
處理大規(guī)模數據的首選工具,廣泛應用于各行各業(yè)的數據處理和分析場景中。
1.2.3Pandas簡介
Pandas是一個基于Python的強大數據分析工具,提供了高效、靈活和易
用的數據結構和數據分析函數庫。其核心數據結構包括Series和DataFrame,
分別用于處理一維和二維數據。Pandas提供了豐富的數據處理和分析功能,包
括數據清洗、數據重塑、數據合并、數據分組、數據透視表等。其靈活的索引
和切片功能使得用戶可以方便地對數據進行查詢和操作。此外,Pandas還集成
了大量的統(tǒng)計分析和繪圖工具,能夠快速地生成各種統(tǒng)計摘要、繪制各種圖表,
并進行數據可視化。Pandas還可以與其他數據分析庫(如NumPy、SciPy、
Matplotlib等)和數據庫(如SQL數據庫、Hadoop、Spark等)無縫集成,
2
湖南商務職業(yè)技術學院畢業(yè)設計
使得用戶可以方便地在數據分析和挖掘過程中進行數據交換和協(xié)作。在趕集網
長沙市招聘數據采集與分析項目中,我們可以利用Pandas對采集到的招聘數
據進行清洗、處理和分析,提取出有價值的信息和規(guī)律,為后續(xù)的決策提供支
持和參考。Pandas的易用性和功能豐富性使其成為數據分析領域的重要工具,
被廣泛應用于各類數據分析和挖掘任務中。
1.2.4Pyecharts簡介
Pyecharts是一個基于Python的強大數據可視化庫,提供了豐富多樣的
圖表類型和靈活的繪圖接口。Pyecharts的特點之一是支持多種常見的圖表類
型,包括折線圖、柱狀圖、散點圖、餅圖、地圖等,可以滿足不同數據分析場
景下的可視化需求。同時,Pyecharts還提供了豐富的圖表樣式和主題,用戶
可以根據自己的喜好和需求進行定制。另外,Pyecharts提供了簡潔明了的API
接口,使得用戶可以輕松地生成和定制各種圖表,無需復雜的圖形編程經驗。
Pyecharts還支持將圖表導出為靜態(tài)圖片或動態(tài)的HTML文件,方便用戶在各
種場景下進行展示和分享。此外,Pyecharts還集成了豐富的地圖數據和地理
信息功能,支持繪制各種地圖和地理空間數據可視化。在趕集網長沙市招聘數
據采集與分析項目中,我們可以利用Pyecharts對采集到的招聘數據進行直
觀、清晰的可視化展示,幫助用戶更好地理解數據的內在關系和趨勢變化,為
決策提供可視化支持。Pyecharts的易用性、豐富的功能和靈活的定制性使其
成為數據可視化領域的重要工具,被廣泛應用于各類數據分析和展示任務中。
2需求分析
2.1可行性需求分析
趕集網長沙市招聘數據采集與分析項目的可行性需求分析主要包括技術可
行性和項目可行性兩個方面。技術可行性方面,趕集網作為一個在線信息發(fā)布
平臺,擁有大量的招聘信息資源,采集這些數據技術上是可行的,可以利用爬
蟲技術實現(xiàn)數據的自動化采集。同時,采用Hadoop進行數據清洗處理,能夠
有效處理大規(guī)模數據,滿足數據質量和準確性要求。項目可行性方面,長沙市
作為湖南省的省會城市,擁有較為活躍的就業(yè)市場,招聘數據的采集與分析具
有一定的市場需求和實際應用場景。此外,隨著數據科學與人工智能技術的發(fā)
展,數據分析在人力資源管理、市場調研等領域的應用也日益廣泛,該項目的
數據分析部分具有較高的實用價值。因此,從技術和項目可行性的角度來看,
3
湖南商務職業(yè)技術學院畢業(yè)設計
趕集網長沙市招聘數據采集與分析項目具有很高的可行性,有望為長沙市的人
力資源管理和市場研究提供有力支持,推動城市經濟發(fā)展。
2.2采集目標功能分析
趕集網長沙市招聘數據采集與分析項目的采集目標功能主要包括以下幾個
方面。首先是實現(xiàn)數據的自動化采集,通過爬蟲技術從趕集網上抓取長沙市的
招聘信息,包括職位標題、薪資待遇、公司名稱、工作地點等關鍵信息。其次
是數據的清洗與處理,利用Hadoop技術對采集到的數據進行清洗、去重和格
式化處理,保證數據的質量和準確性。然后是數據的存儲與管理,將清洗后的
數據存儲到適當的數據庫中,便于后續(xù)的分析和查詢。接著是數據的分析與挖
掘,利用pandas等數據分析工具對招聘數據進行統(tǒng)計分析,包括職位數量、
薪資水平、行業(yè)分布等方面,從中挖掘出有價值的信息和規(guī)律。最后是數據的
可視化展示,利用pyecharts等可視化工具將分析結果以圖表的形式直觀展示
出來,便于用戶理解和應用。通過以上功能,實現(xiàn)對長沙市招聘市場的全面了
解和分析,為求職者和企業(yè)提供有針對性的參考和支持。
2.3關鍵技術分析
2.3.1網絡爬蟲技術
趕集網長沙市招聘數據采集與分析項目的網絡爬蟲技術是基于Python的
爬蟲框架實現(xiàn)的。通過網絡爬蟲技術,項目能夠自動從趕集網上抓取長沙市的
招聘信息。爬蟲首先模擬用戶在瀏覽器中訪問趕集網的行為,發(fā)送HTTP請求
獲取網頁數據。然后利用解析庫對網頁進行解析,提取出需要的招聘信息,包
括職位標題、薪資待遇、公司名稱、工作地點等關鍵信息。爬蟲技術可以通過
設置合適的請求頭、使用代理IP和處理反爬措施等手段來提高數據的獲取效
率和穩(wěn)定性,確保數據的完整性和準確性。此外,爬蟲還需要設計合適的策略
來避免被網站封禁IP,例如設置訪問頻率、隨機延時等方式。通過網絡爬蟲技
術,項目能夠快速、高效地獲取大量的招聘數據,為后續(xù)的數據分析和挖掘提
供基礎支持。
2.3.2數據存取技術
趕集網長沙市招聘數據采集與分析項目的文件存儲技術主要采用了簡單易
用的文本文件(txt)存儲格式。在數據采集和分析過程中,項目將獲取到的招
4
湖南商務職業(yè)技術學院畢業(yè)設計
聘信息以文本文件的形式保存在本地磁盤上,便于后續(xù)的數據處理和分析。文
本文件具有通用性強、易于處理和傳輸的特點,能夠滿足項目對數據存儲的基
本需求。項目將不同類型的招聘信息按照一定的格式寫入到文本文件中,例如
使用逗號或制表符分隔各個字段,確保數據的結構清晰和易于讀取。此外,項
目還可以采用文本文件壓縮技術,如gzip或zip,以減小文件大小,節(jié)省存儲
空間。文本文件的存儲方式簡單方便,可以方便地與其他數據處理工具配合使
用,如Python的pandas庫、Hadoop集群等。同時,文本文件也易于分享和傳
播,便于團隊成員之間的數據交流和協(xié)作。總之,趕集網長沙市招聘數據采集
與分析項目的文件存儲技術采用了簡單、實用的文本文件格式,為項目的數據
存儲提供了可靠的基礎支持。
2.3.3可視化技術
趕集網長沙市招聘數據采集與分析項目采用了Pyecharts作為數據可視化
技術。Pyecharts是一個基于Echarts的Python可視化庫,提供了豐富的圖表
類型和靈活的配置選項,可以幫助用戶快速生成各種高質量的交互式圖表。通
過Pyecharts,項目可以將招聘數據轉化為直觀、易于理解的圖表展示,從而
更加直觀地呈現(xiàn)數據之間的關系和趨勢。項目可以使用Pyecharts繪制各種圖
表,包括折線圖、柱狀圖、餅圖、地圖等,以及交互式圖表,如縮放、拖拽、
數據篩選等功能,使用戶能夠自由地探索數據并進行深入分析。此外,Pyecharts
還提供了豐富的主題和樣式選項,可以根據需求定制圖表的外觀和風格,使圖
表更加美觀和專業(yè)。通過Pyecharts的數據可視化功能,項目可以直觀地展示
招聘數據的特征、趨勢和分布情況,為決策提供可靠的參考依據,同時也提升
了數據分析的效率和準確性。
3數據采集
3.1采集頁面分析
趕集網是一個專業(yè)的分類信息網,提供房屋租售、二手物品買賣、招聘求
職、車輛買賣、寵物票務、教育培訓、同城活動及交友、團購等眾多本地生活
及商務服務類信息。用戶可以在趕集網上發(fā)布和查找各類生活服務信息,滿足
日常生活和工作中的需求。趕集網還通過智能整合全平臺信息,提供實時、海
量、有效的信息服務,致力于解決用戶身邊的實際問題,方便用戶快速找到所
需服務,提高生活效率。同時,趕集網也不斷優(yōu)化用戶體驗,提供簡潔易用的
5
湖南商務職業(yè)技術學院畢業(yè)設計
界面和強大的搜索功能,讓用戶能夠快速找到所需信息,提升用戶滿意度。本
次項目我們主要對工作崗位的招聘信息進行采集。招聘頁面如圖3-1所示
圖3-1招聘信息頁
在頁面中我們可以看到工作的名稱、工資、工作地點、公司名稱等信息如
下圖3-2所示:
圖3-2工作信息
本次項目主要對長沙市的所有招聘信息進行采集,采集的字段有工作名稱、
工資、公司名稱和工作地點。
3.2爬蟲策略分析
確定招聘目標與行業(yè):首先,你需要明確你想要爬取的招聘信息的目標行
業(yè)和職位類型。例如,你可能只對IT行業(yè)的招聘信息感興趣,或者你想要抓取
特定職位(如銷售、客服等)的招聘信息。這樣可以幫助你縮小爬取范圍,提
高效率和準確性。
分析招聘信息頁面結構:趕集網的招聘信息頁面可能采用分頁或無限滾動
加載的方式展示數據。你需要分析頁面的HTML結構,找到數據存放的位置和加
載方式??赡艿臄祿匕毼幻Q、公司名稱、工作地點、薪資范圍、發(fā)
布時間等。
6
湖南商務職業(yè)技術學院畢業(yè)設計
實現(xiàn)數據抓取邏輯:根據頁面結構,編寫爬蟲代碼來模擬用戶行為,訪問
招聘信息頁面,并提取數據。你可能需要使用到網絡請求庫(如requests)和
HTML解析庫(如BeautifulSoup)來實現(xiàn)這一步驟。針對動態(tài)加載的頁面,你
可能還需要使用到模擬JavaScript執(zhí)行的工具(如Selenium)。
處理反爬蟲機制:趕集網可能會針對招聘信息頁面設置一些反爬蟲機制,
如驗證碼驗證、登錄驗證、訪問頻率限制等。你需要編寫代碼來應對這些機制,
確保爬蟲能夠順利訪問和提取數據。
數據存儲與處理:將抓取到的招聘信息存儲到適當的數據結構中,如列表、
字典或數據庫。根據需要,你還可以對數據進行清洗、過濾和排序等處理,以
便后續(xù)分析和使用。
定期更新與監(jiān)控:招聘信息是時效性非常強的數據,你需要定期更新爬蟲,
確保能夠抓取到最新的招聘信息。同時,監(jiān)控爬蟲的運行狀態(tài)和數據抓取效果,
及時調整策略和處理異常情況。
3.3創(chuàng)建python項目
首先再PyCharm開發(fā)工具中新建一個工程如下圖3-3所示:
圖3-3創(chuàng)建python項目
項目的目錄結構如下圖3-4所示:
7
湖南商務職業(yè)技術學院畢業(yè)設計
圖3-4項目的目錄結構
其中在趕集網.py中編寫爬蟲具體代碼,data.csv中存放我們采集到的數
據。
3.4爬蟲核心代碼編寫
Obtain類的主要作用是抓取并保存特定網頁上的招聘信息。具體來說,它
的功能如下:初始化、數據抓取、數據寫入。Obtain類提供了一個自動化的方
式來抓取和保存特定網頁上的招聘信息,這對于數據分析和機器學習等任務來
說是非常有用的。詳細分析如下。
getData方法:getData函數是一個爬蟲函數,它的目的是從給定的基礎URL
(base_url)抓取招聘信息。getData的方法中它接受一個參數base_url,代表
基礎URL地址。在代碼中首先創(chuàng)建了headers字典用于設置了HTTP請求頭,特
別是User-Agent。它告訴服務器這個請求來自哪個瀏覽器或客戶端。這有助于
避免被某些網站的反爬蟲機制阻止。然后使用一個for循環(huán),用于遍歷從第1
頁到第100頁的所有頁面。對于每一頁,都會基于base_url構建一個完整的
URL。其中,pid=660091329743060992是一個參數。使用requests.get(url=url,
headers=headers)發(fā)送一個GET請求到上述構建的URL,并帶上之前設置的請
求頭。將響應的數據存放到response變量中。需要使用etree來解析返回的
HTML內容。因為頁面中每一頁有三十條數據需要使用循環(huán)遍歷頁面上的前30
條招聘信息。為每個招聘信息構建一個XPath表達式,使用
'//*[@id="dataCollectionId"]/div['+str(i)+']'定位到頁面上的具體元
素。使用`etree.xpath`方法根據之前構建的XPath表達式來查找頁面上的招
聘信息元素。對于找到的每一個招聘信息元素,代碼進一步使用XPath表達式
來提取具體的信息,如工作名稱、工資、公司名稱和工作區(qū)域。最后將數據寫
入文件中。getData方法如圖3-5所示。
8
湖南商務職業(yè)技術學院畢業(yè)設計
圖3-5getData代碼。
writeData方法,方法詳情如圖3-6所示
圖3-6writeData方法
writeData方法被設計用來處理從網頁上抓取到的招聘信息,并將這些信
息寫入一個CSV文件。方法接受四個參數:workName(工作名稱),wage(工
資),companyName(公司名稱)和region(工作區(qū)域)。result=''表示
初始化一個名為result的變量,準備用空格連接一個列表的元素。
''.join(item)ifisinstance(item,list)elseitem這是一個條件表達式,
它檢查每個傳入的參數(workName、wage、companyName、region)是否是列表
類型。如果是列表,它會將列表的元素連接成一個字符串,如果不是列表,它
會直接使用該參數。然后是一個for循環(huán),遍歷傳入的四個參數并將結果打印
9
湖南商務職業(yè)技術學院畢業(yè)設計
到控制臺。接下來使用withopen()打開文件,文件以追加模式('a')打開,
這意味著新數據將被添加到文件的末尾,而不是覆蓋現(xiàn)有數據。newline=''參
數確保在寫入時不會自動插入額外的換行符。encoding='utf-8'指定了文件
編碼為UTF-8,以支持國際化字符。最后使用writerow方法將work_name、
wage、company_name和region寫入CSV文件的一行中。這些數據會被自動用
逗號分隔,這是CSV文件的標準格式
main方法:創(chuàng)建了一個Obtain類的實例,并將其賦值給變量obtain調用
了obtain對象的getData方法,并傳遞了一個字符串參
'/job/pn'。這個字符串是一個基礎的URL,用于指定從
哪個網頁抓取招聘信息最后。main方法如圖3-7所示
圖3-7main方法
3.5運行項目
在PyCharm中運行代碼,程序運行結束后回到當前目錄下會生成一個名為
data.csv的文件,文件中保存了從趕集網上爬取到的招聘信息的數據。項目運
行結束后生產的data.csv文件如下圖3-8所示:
圖3-8data.csv文件
在data.csv文件中包括了工作的名稱、工資、工作地點、公司名稱。這些
數據能夠滿足我們的數據清洗與處理。
10
湖南商務職業(yè)技術學院畢業(yè)設計
4數據清洗與處理
4.1數據清洗
MapReduce是一種適用于大規(guī)模數據處理的編程模型,可用于趕集網爬取的
數據清洗和預處理。在數據清洗過程中,Mapper負責讀取數據并剔除特殊字符,
如換行符(\n)、制表符(\t)和空格等,以確保數據的一致性和準確性。而Reducer
則負責對數據進行進一步處理,例如對工資字段進行預處理,可能包括去除單
位、轉換成統(tǒng)一格式等,以使數據更易于分析和理解。通過MapReduce的分布
式并行計算,可以高效地處理大量數據,提高數據清洗和預處理的效率和準確
性。
4.2代碼實現(xiàn)
剔除特殊字符的代碼如下圖4-1所示:
圖4-1getValue方法
定義getValue方法,用于處理傳入的字符串value。在方法中,通過調用
replaceAll方法,使用正則表達式[\\[\\]\\'\\'\t\\\\n]匹配到字符串中
的特殊字符,包括方括號[]、單引號'、空格、制表符\t和換行符\n,然后將
其替換為空字符串"",最后返回處理后的結果res。這樣的處理可以有效地剔
除特殊字符,使字符串更干凈、更易于處理和分析。
由于工資字段是一個范圍值,比如:3000元-4000元,對于這類格式的數
據取下限和上線的平均值,另外工資字段中還包含了“面議”的數據,這類數
據用0代替,代碼如下圖4-2所示:
圖4-2calAvgWages方法
11
湖南商務職業(yè)技術學院畢業(yè)設計
編寫map方法進行數據處理,代碼如下圖4-3所示:
圖4-3map方法
Map方法中將讀取到的一行數據轉換為字符串,并使用逗號進行分割,得到
標題、工資、公司和地址等字段。然后通過調用getValue方法剔除特殊字符,
對工資字段調用calAvgWages方法進行預處理,計算平均工資。接下來將處理
后的字段按照指定格式拼接成一個字符串tex,并輸出到控制臺。如果標題為
空,則直接返回,否則將處理后的文本轉換為Text對象,寫入到MapReduce框
架中。這樣的處理可以清洗數據,準備進行后續(xù)的數據分析和處理。
4.3數據存儲
運行mapreduce程序,生成結果文件,如下圖4-4所示。
圖4-4數據清洗結果
Part-r-00000文件內容如下圖4-5所示。
圖4-5數據清洗結果文件內容
12
湖南商務職業(yè)技術學院畢業(yè)設計
5數據統(tǒng)計與分析
5.1數據準備
數據清洗完成后,利用Python中的pandas庫進行數據分析是一種常見的
做法。首先,我們將經過清洗的數據加載到DataFrame中,這樣可以方便地進
行各種數據操作和分析。然后,我們可以利用DataFrame提供的豐富功能,比
如groupby函數進行分組統(tǒng)計,describe函數生成數據描述統(tǒng)計,以及各種數
據篩選、排序等操作,從而得到我們感興趣的分析結果。
一般來說,數據分析的目的包括但不限于:統(tǒng)計各個類別的數量分布、計
算數值型數據的統(tǒng)計指標如均值、中位數等、發(fā)現(xiàn)數據之間的關聯(lián)規(guī)律、識別
異常值等。一旦完成了數據分析,我們通常會將分析結果存儲到文件中,以便
后續(xù)進一步使用或者與他人分享。這些文件可以是文本文件、CSV文件、Excel
文件等格式,根據實際需求選擇合適的文件格式存儲分析結果。
使用pandas讀取數據,代碼如下圖5-1所示。
圖5-1讀取數據文件
代碼通過pandas庫的read_csv()函數讀取了一個CSV文件,該文件位
于指定路徑下。讀取過程中,使用了逗號作為字段的分隔符,并為每一列指定
了名稱,包括'title'、'wages'、'company'和'add'。依次執(zhí)行了四個需求
函數,分別是company_job_counts()、top_10_avg_wages()、area_job_counts()
和top_10_jobs()。這些函數對讀取的數據進行了不同的分析和統(tǒng)計,并將結
果存儲到了文件中。
函數company_job_counts針對傳入的數據data,統(tǒng)計了每個公司發(fā)布的
職位數量。代碼如下圖5-2所示。
圖5-2統(tǒng)計每個公司發(fā)布職位的個數
13
湖南商務職業(yè)技術學院畢業(yè)設計
使用了Pandas庫中的value_counts()方法統(tǒng)計了每個公司出現(xiàn)的次
數,并通過reset_index()方法重置了索引。然后,將結果存儲到了名為
company_counts的DataFrame中,其中包含了公司名稱和對應的職位數量。
接著,從中選取了前20個公司,并將結果保存到了名為
company_job_counts.txt的文本文件中,不包含索引列。
函數top_10_avg_wages針對傳入的數據data,統(tǒng)計了平均工資最高的
10個公司。代碼如下圖5-3所示。
圖5-3統(tǒng)計平均工資最高的10個公司
使用Pandas庫中的groupby()方法按公司進行分組,然后對每個公司的
工資字段進行平均值計算。接著,通過nlargest()方法選取了工資平均值最
高的前10個公司,并將結果存儲到了名為top_10_avg_wages.txt的文本文件
中,不包含索引列。
函數area_job_counts針對傳入的數據data,統(tǒng)計了每個區(qū)發(fā)布的職位
數量。代碼如下圖5-4所示。
圖5-4統(tǒng)計每個區(qū)的職位個數
通過apply()方法和lambda函數將地址字段add按照|符號切分,提
取出區(qū)的信息。然后,使用Pandas庫中的value_counts()方法計算了每個
區(qū)發(fā)布的職位數量,并通過reset_index()方法將結果轉換為DataFrame格
式。最后,將統(tǒng)計結果存儲到名為area_job_counts.txt的文本文件中,不包
含索引列。
函數top_10_jobs的實現(xiàn)邏輯如下圖5-5所示:
14
湖南商務職業(yè)技術學院畢業(yè)設計
圖5-5統(tǒng)計工資最高的10個職位
5.2數據展示
5.2.1統(tǒng)計公司發(fā)布職位的數量
公司發(fā)布職位的數量折線圖代碼如圖5-6所示
圖5-6公司發(fā)布職位的數量折線圖代碼
首先導入所需的庫pandas:用于數據處理和分析。pyecharts.charts:用
于繪制圖表。pyecharts.options:用于設置圖表的各種選項。使用pandas的
read_csv函數讀取CSV文件,使用df.sort_values對讀取到的數據進行排序,
根據職位數量從高到低。這樣,在折線圖中,職位數量最多的公司會顯示在最
前面。從排序后的數據框中提取公司名稱和對應的職位數量,并將它們轉換為
列表,以便后續(xù)繪制圖表時使用。使用Line類創(chuàng)建一個折線圖對象,并通過
add_xaxis和add_yaxis方法設置x軸和y軸的數據。接著,使用
set_global_opts方法設置圖表的全局選項,如標題和x軸標簽的旋轉角度。
最后,使用render方法將圖表渲染為一個HTML文件。使用width="1200px",
height="600px"分別設置圖表的高度和寬度。折線圖如圖5-7所示
15
湖南商務職業(yè)技術學院畢業(yè)設計
圖5-7公司職位數量折線圖
從折線圖中可以分析出:
公司規(guī)模與招聘需求:比亞迪汽車工業(yè)有限公司的職位數量最多,達到了
157個,這可能表明該公司在擴張或者需要補充大量的人力資源來支持其業(yè)務。
而職位數量較少的公司,如四川宸??萍加邢薰竞蛫涞赘J绿匾簤簷C械有限
公司,只有8個職位,這可能意味著這些公司的規(guī)模較小,或者他們正在尋找
特定技能的員工。
行業(yè)分布:從公司名稱來看,涉及的行業(yè)包括汽車制造(比亞迪汽車工業(yè)
有限公司)、物流(湖南軒辰物流有限公司)、互聯(lián)網信息服務(湖南尚優(yōu)互
聯(lián)網信息服務有限公司)、保險(中國人壽保險股份有限公司長沙市分公司)
等。這顯示出招聘需求的多樣性,反映了不同行業(yè)的發(fā)展狀況。
5.2.2統(tǒng)計平均工資最高的10個公司
使用pyecharts繪制柱狀圖的詳細代碼如圖5-3所示。
16
湖南商務職業(yè)技術學院畢業(yè)設計
圖5-3平均工資最高的10個公司柱狀圖代碼
ile_path變量存儲了txt文件的路徑。使用pandas的read_csv函數讀取
txt文件,文件中的數據是以逗號分隔的,并且有兩列:company和wages。分
別代表公司名稱和工資。將結果存儲在df這個DataFrame對象中。使用
pd.to_numeric函數將wages列轉換為浮點數類型。errors='coerce'參數意味
著任何無法轉換為數字的值將被設置為NaN。使用dropna函數過濾掉wages列
中為NaN的行。然后是開始繪制柱狀圖,創(chuàng)建一個Bar對象。使用add_xaxis
和add_yaxis方法分別設置x軸和y軸的數據。這里,x軸是公司的名稱,y軸
是對應的薪資。使用set_global_opts方法設置圖表的全局選項,如標題、x
軸標簽的旋轉角度、y軸標簽的格式等。最后使用render方法將圖表渲染到一
個HTML文件中。柱狀圖如圖5-4所示
圖5-4公司平均薪資柱狀圖
17
湖南商務職業(yè)技術學院畢業(yè)設計
從圖中可以看出薪資水平:最高薪資為長沙市岳麓區(qū)炭上君餐飲店,為
24,000元。最低薪資為長沙市皓云電器有限公司,為12,857.14元。平均薪
資看起來在15,000元左右,但需要注意這只是一個粗略的估計,因為數據只包
含了部分公司和薪資。行業(yè)差異:雖然數據中的公司數量有限,但已經可以看
出不同行業(yè)的薪資水平可能存在差異。例如,餐飲和網絡科技行業(yè)的薪資相對
較高,而電器和保健按摩行業(yè)的薪資相對較低。從數據中很難直接判斷公司規(guī)
模與薪資的關系,因為公司規(guī)模不僅僅取決于其員工數量,還與其業(yè)務范圍、
市場份額等因素有關。數據主要反映了長沙及其周邊地區(qū)的薪資情況。不同地
區(qū)的經濟發(fā)展、行業(yè)分布和消費水平都可能影響薪資水平。
5.2.3統(tǒng)計長沙市各區(qū)發(fā)布職位的數量
使用pyecharts繪制沙市各區(qū)發(fā)布職位的數量柱狀圖的詳細代碼,如圖5-5
所示。
圖5-5各區(qū)發(fā)布職位的數量
代碼定義了一個文件路徑file_path,然后使用pandas的read_csv函數
讀取這個CSV文件。read_csv函數的參數指定了:names:列名,因為CSV文
件可能沒有列頭,所以這里手動指定了area和job_count作為列名。sep:分
隔符,指定為逗號,因為CSV文件使用逗號分隔各個字段。encoding:文件編
碼,這里設置為utf-8,這是最常見的編碼方式。skiprows:跳過的行數,這
里設置為1,用于跳過包含列名的第一行。使用Pie()創(chuàng)建一個新的餅圖對象。
使用.add()方法向餅圖中添加數據。這里通過zip函數將area和job_count兩
列的數據組合成元組,然后轉換為列表,作為餅圖的數據。每個列表元素包含
一個地區(qū)名稱和對應的職位數量。使用.set_global_opts()設置全局選項。這
包括:title_opts:設置圖表的標題為“各區(qū)發(fā)布職位的數量”。legend_opts:
18
湖南商務職業(yè)技術學院畢業(yè)設計
設置圖例的方向為垂直,并指定圖例在圖表中的位置和大小。使
用.set_series_opts()設置系列選項。這里設置了標簽的格式,其中代表系
列名稱(即地區(qū)名稱),{c}代表數據值(即職位數量)。最后,代碼調用了
pie_chart函數,并將之前讀取的DataFrame作為參數傳入。然后,使用.render()
方法將配置好的餅圖渲染到一個名為job_counts_pie_chart.html的HTML文件
中。這樣,你就可以在瀏覽器中打開這個HTML文件,查看生成的餅圖了。餅圖
如圖5-6所示
圖5-6各區(qū)域職位數量餅圖
從圖中可以看出以下信息:
地區(qū)與職位數量:數據列出了不同地區(qū)的名稱和對應的發(fā)布職位數量。
職位數量分布:雨花區(qū)的職位數量最多,為351個,其次是岳麓區(qū)和芙蓉
區(qū)。而瀏陽和寧鄉(xiāng)的職位數量相對較少。
地區(qū)差異:從數據中可以明顯看出不同地區(qū)的經濟發(fā)展或就業(yè)機會的差異。
雨花區(qū)作為職位數量最多的地區(qū),可能是經濟較為發(fā)達或企業(yè)較為集中的地方。
城市與郊區(qū)/縣域差異:長沙市內的幾個區(qū)(如雨花區(qū)、岳麓區(qū)、芙蓉區(qū)等)
的職位數量普遍高于周邊的縣域或郊區(qū)(如長沙縣、望城、瀏陽、寧鄉(xiāng)等)。
這反映了城市中心與周邊地區(qū)的經濟活躍度和就業(yè)機會的差異。
星沙地區(qū)的特殊性:盡管星沙地區(qū)被列為一個單獨的地區(qū),但其職位數量
相對較少,這可能表明星沙地區(qū)與長沙其他地區(qū)的經濟活躍度或就業(yè)機會存在
差異。
19
湖南商務職業(yè)技術學院畢業(yè)設計
5.2.4統(tǒng)計工資最高的10個職位
前10個職位的薪資水平柱狀圖代碼如圖5-7所示。
圖5-7薪資水平柱狀圖代碼
使用pandas的read_csv方法讀取數據文件,盡管文件擴展名是.txt,但
這里我們按照CSV格式來讀取。skiprows=1表示跳過第一行,這通常是因為
第一行包含列名或其他不需要的數據。names參數用于指定列名,這里我們
假設有兩列,分別是'title'和'wages'。sep=','表示字段之間用逗號分隔。
encoding='utf-8'指定文件編碼,確保能夠正確讀取文件中的字符。
thousands=','用于處理數字中的千位分隔符,將其當作普通字符處理,而不是
將其視為千位分隔符。在讀取數據后,我們需要確保'wages'列的數據類型是正
確的。由于之前可能存在的千位分隔符,我們需要將其轉換為數字類型。最后
創(chuàng)建一個Bar對象,用于繪制柱狀圖。使用add_xaxis方法將'title'列的數據
添加到x軸。使用add_yaxis方法將'wages'列的數據添加到y(tǒng)軸,并設置y軸
的名稱為"薪資"。并設置圖表標題為"前10個職位的薪資水平"。使用render
方法將柱狀圖渲染為一個HTML文件,文件名為"job_wages_bar_chart.html"。
這樣,我們就可以在瀏覽器中打開這個文件來查看圖表了。
柱形圖如圖5-8所示
20
湖南商務職業(yè)技術學院畢業(yè)設計
圖5-8前10個職位的薪資水平柱狀圖
通過此表可以分析出職位多樣性:職位種類涵蓋了銷售、管理、醫(yī)學、能
源等多個領域,顯示出招聘需求的廣泛性。
薪資水平:所有職位的薪資水平都在15000元及以上,這可能反映了當前
勞動力市場對某些專業(yè)技能和經驗的較高價值認可。
銷售職位的普遍性:數據中銷售相關職位(如銷售主管、房產經紀人、石
材業(yè)務員、新房銷售)較多,這可能反映了銷售行業(yè)在當前經濟環(huán)境下的招聘
活躍度。
高薪資職位:有一些職位提供了相對較高的薪資水平,如“月營
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職市場營銷(價格管理策略)試題及答案
- 2025年高職汽車維修(懸掛系統(tǒng)維修)試題及答案
- 2025年大學大一(康復工程)康復輔具材料學基礎階段測試試題及答案
- 2025年高職(香料香精技術與工程)香料調配技術階段測試試題及答案
- 2025年中職(船舶電氣技術)電氣技術階段測試題及答案
- 2025年大學烹飪與營養(yǎng)教育(中式烹調研究)試題及答案
- 2025年大學環(huán)境科學技術(環(huán)境科學研究)試題及答案
- 2025年中職(酒店管理)酒店禮儀規(guī)范階段測試題及答案
- 2025年中職首飾設計與制作(首飾打磨)試題及答案
- 2025年高職第二學年(測繪地理信息技術)GIS應用測試題及答案
- 審計數據管理辦法
- 2025國開《中國古代文學(下)》形考任務1234答案
- 研發(fā)公司安全管理制度
- 兒童口腔診療行為管理學
- 瓷磚樣品發(fā)放管理制度
- 北京市2025學年高二(上)第一次普通高中學業(yè)水平合格性考試物理試題(原卷版)
- 短文魯迅閱讀題目及答案
- 肺部感染中醫(yī)護理
- 臨床研究質量控制措施與方案
- 中考英語聽力命題研究與解題策略省公開課金獎全國賽課一等獎微課獲獎課件
- 膀胱鏡檢查室的工作制度
評論
0/150
提交評論