整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          15分鐘,教你用Python爬網站數據,并用BI可視

          15分鐘,教你用Python爬網站數據,并用BI可視化分析!

          為一名在數據行業打拼了兩年多的數據分析師,雖然目前收入還算ok,但每每想起房價,男兒三十還未立,內心就不免彷徨不已~

          兩年時間里曾經換過一份工作,一直都是從事大數據相關的行業。目前是一家企業的BI工程師,主要工作就是給業務部門出報表和業務分析報告。

          回想自己過去的工作成績也還算是不錯的,多次通過自己分析告,解決了業務的疑難雜癥,領導們各種離不開。

          但安逸久了總會有點莫名的慌張,所以我所在的這個崗位未來會有多大發展空間,十年之后我能成為什么樣的人呢?自己的收入空間還有多少?

          一番惆悵之后,別再問路在何方了,于是抄起自己的“家伙”,花了一小會時間爬了智聯招聘上BI崗位的數據信息,做了個分析。

          PS:所用工具為Python+BI

          數據分析的過程如同燒一頓飯,先要數據采集(買菜),然后數據建模(配菜)、數據清洗(洗菜)、數據分析(做菜)、數據可視化(擺盤上菜)。

          所以第一步,要采集/選擇數據。

          一、Python爬取智聯招聘崗位信息(附源碼)

          選擇智聯招聘,通過Python來進行“BI工程師”的關鍵數據信息的爬取,這里大家也可以試著爬取自己崗位的關鍵詞,如“數據分析師”、“java開發工程師 ”等。經過F12分析調試,數據是以JSON的形式存儲的,可以通過智聯招聘提供的接口調用返回。

          那么我這邊通過Python對智聯招聘網站的數據進行解析,爬取了30頁數據,并且將崗位名稱、公司名稱、薪水、所在城市、所屬行業、學歷要求、工作年限這些關鍵信息用CSV文件保存下來。

          附上完整Python源碼:

          import requests
          import json
          import csv
          from urllib.parse import urlencode
          import time
           
          def saveHtml(file_name,file_content): #保存conten對象為html文件
           with open(file_name.replace('/','_')+'.html','wb') as f:
           f.write(file_content)
           
          def GetData(url,writer):#解析并將數據保存為CSV文件
           response=requests.get(url)
           data=response.content
           saveHtml('zlzp',data) #保存html文件
           jsondata=json.loads(data)
           dataList=jsondata['data']['results']
           #print(jsondata)
           for dic in dataList:
           jobName=dic['jobName'] #崗位名稱
           company=dic['company']['name'] #公司名稱
           salary=dic['salary'] #薪水
           city=dic['city']['display'] #城市
           jobtype=dic['jobType']['display'] #所屬行業
           eduLevel=dic['eduLevel']['name'] #學歷要求
           workingExp=dic['workingExp']['name'] #工作經驗
           print(jobName,company,salary,city,jobtype,eduLevel,workingExp)
           writer.writerow([jobName,company,salary,city,jobtype,eduLevel,workingExp])
          param={ 'start':0,
           'pageSize':60,
           'cityId':489,
           'workExperience':-1,
           'education':-1,
           'companyType': -1,
           'employmentType': -1,
           'jobWelfareTag': -1,
           'kw': 'BI工程師', #搜索關鍵詞,可以根據你需要爬取的崗位信息進行更換
           'kt': 3,
           'lastUrlQuery': {"p":1,"pageSize":"60","jl":"681","kw":"python","kt":"3"}
           }#參數配置
          pages=range(1,31)#爬取1-30頁數據
          out_f=open('test.csv', 'w', newline='')
          writer=csv.writer(out_f)
          writer.writerow(['jobName','company','salary','city','jobtype','eduLevel','workingExp'])
          for p in pages: #自動翻頁
           param['start']=(p-1)*60
           param['lastUrlQuery']['p']=p
           url='https://fe-api.zhaopin.com/c/i/sou?' + urlencode(param)
           GetData(url,writer)
           time.sleep(3)#間隔休眠3秒,防止IP被封
           print(p)
          out_f.close() 
          

          經過一番編譯調試,代碼成功運行。

          全部數據爬取完畢,一共1800條,保存在本地CSV文件中。

          數據是爬到了,具體我想了解哪些信息呢:各城市的BI崗位需求情況以及薪資水平;薪水隨工作經驗的漲幅情況,以及有哪些具體的高薪崗。

          由此可見,想要分析的角度很多,且看了源數據,還要做不少的數據處理。最簡單快速出可視化的方法自然是用BI工具,來對數據做簡單清洗加工,并呈現可視化。

          BI能應付絕大多數場景的數據分析,尤其擅長多維數據切片,不需要建模;甚至數據清洗環節也能放在前端,通過過濾篩選、新建計算公式等來解決。最后呈現可視化,并可設計數據報告。

          這里我用FineBI來做這樣一份分析。

          FineBI做分析大體是這樣的流程:連接/導入數據——數據處理/清洗(過濾、篩選、新增公式列)——探索式分析——數據可視化——出報告。

          二、數據清洗加工

          1.薪水上下限分割:

          將CSV文件數據導入FineBI中(新建數據鏈接,建立一個分析業務包,然后導入這張excel表)。因為薪水是以xxK-xxk(還有一些類似校招/薪資面議的數據)的形式進行存儲的,我這邊使用FineBI新增公式列(類似excel函數)將這些字符進行分割:

          薪水下限(數值):left( indexofarray ( split (salary,"-") ,1),find( "K",INDEXOFARRAY( split(salary,"-") ,1))-1)

          薪水上限(含K字符):right ( indexofarray( split(salary,"-") ,2),len(salary)- find("K",indexofarray(split(salary,"-"),2 ) ) )

          薪水上限(數值):left( 薪水上限(文本),find("K",薪水上限(文本))-1 )

          這樣就得到每個崗位的數值格式的薪水區間了:

          2.臟數據清洗:

          瀏覽了一下數據,沒有大問題,但是發現里面有一些類似BIM工程師的崗位信息,這些應該都是土木行業的工程師,這邊我直接過濾掉即可(不包含“BIM”且不包含“bim”)。

          3.崗位平均數據計算

          再新增列,平均薪水=(薪水下限+薪水上限)/2,即可得到每個崗位的平均薪水。

          4.真實城市截取

          由于城市字段存儲有的數據為“城市-區域”格式,例如“上海-徐匯區”,為了方便分析每個城市的數據,最后新增列“城市”,截取“-”前面的真實城市數據。

          城市:if(find("-",city)>0 , left(city, find("-",city)-1 ),city)

          至此,18000多條數據差不多清洗完畢,食材已經全部準備好,下面可以正式開始數據可視化的美食下鍋烹飪。

          三、數據可視化

          數據可視化可以說是很簡單了,拖拽要分析的數據字段即可。

          但是這里用finebi分析要理解一個思路。常規我們用excel做分析或者說做圖表,是先選用鉆則圖表然后設定系列、數值。這里沒有系列和數值的概念,只有橫軸和豎軸。拖入什么字段,該字段就以該軸進行擴展,至于圖表嘛,finebi會自動判別推薦。

          我這邊以各城市平均薪水/崗位數量分析為例給大家簡單展示FineBI的可視化呈現過程。

          1、橫軸以“城市”字段擴展,展現兩類數據。先是薪水值,拖拽到縱軸,默認對數值類的字段是匯總求和的。點擊字段可直接對改字段修改計算、過濾等操作。

          此圖來自官網,圖中數據不是本次分析的數據,僅供參考

          2、然后分析每個城市BI崗位的情況。將數據記錄數這個指標拖入到縱軸展示。同樣的方式,可以修改字段名。這里為了區分兩者,將其修改為折線圖,并且倒敘展示。

          同理,其他圖表也是這樣的操作,想清楚展現什么樣的數據,怎樣展現,數據要作何處理。就得心應手了。其他圖表就不一一贅述了。

          最后,大概花了15分鐘,一份完整的智聯招聘網站-BI工程師崗位數據分析的可視化報告就制作完成啦~

          審美有限,只能做成這樣,其實這個FineBI還能做出這樣的效果。

          四、分析結果

          1.目前BI工程師崗位在智聯招聘網站的平均薪資為13.46K(痛哭。。。拉低平均薪水的存在),主要薪水區間大概在12-15K(占比27.07%),相關工作需求總數為634個(僅僅為某一天的招聘需求數據)。

          2.從城市崗位需求數量分布來看,BI工程師需求主要集中在北京、上海、深圳、廣州區域;各城市BI工程師平均薪水方面,去除崗位需求量較少的城市來看,國內排在前面的分別為深圳(14.72K)、上海(14.59K)、北京(14.51)、杭州(12.07K)、成都(11.13K)、廣州(10.94K)。

          3.從工作年限的平均薪水和崗位需求數量來看,工作5-10年的資深BI工程師的平均薪水可以達到20K以上(朝資深BI工程師方向奮斗!!!1年以下年限的計算出來的平均薪水雖然為19K,但是由于樣本量只有3個,所以參考意義不大),其中大部分的工作需求年限為3-5年,平均薪水為14.24K。

          4.從學歷方面來看,最低學歷需求主要以本科/大專為主,本科和大專學歷要求的平均薪資分別為12.68K和11.97K(感覺差距并不大,過硬的技術實力可能才是企業最為看重的吧),博士和碩士學歷需求很少。

          5.看了一些高薪的招聘企業,最高的可以給到30K~40K的薪酬水平,其中主要是互聯網、IT類公司為主。

          醍醐灌頂,頓時有了奮斗的動力~知識就是財富,繼續好好學習去吧,少年!!!

          最后,附上本次爬取到的相關崗位明細的CSV數據(私心回復“csv”獲取),如果大家也有分析自己崗位未來前景的想法,但是可能不熟悉數據可視化工具的,可以拿這份數據用FineBI練練手。

          常有人不太會,使用excel來進行一些數據分析,通過下文的例子,簡要說明其過程。

          書寫此文的目的是宣傳excel的基礎應用,提高大家的工作效率。

          此文為excel使用的基礎文章,高手請略過。

          更深層次的excel使用技巧可以在工作中碰到時,可以進一步學習。

          例子說明:

          1. 獲得原始的基礎數據

          2. 觀察數據的特點,然后進行數據格式化

          3. 導入excel軟件,排序,分析

          4. 改名,并存檔

          例子的說明以及背景說明。

          今天在網上,看到一個“2015年中國經濟城市百強”的文章,想初步對其進行數據分析,以備后用。

          文章出處:http://blog.sina.com.cn/s/blog_53f8060b0102wsrh.html

          處理的思路:

          1. 從該鏈接獲得原始的基礎數據,目的:看看人均排名,網上沒有,自己整一個。——將數據復制到文本文件中,重命名為100.txt(因為若直接復制到excel中,會放到每一行的第一格,還要整理數據,所以先復制到文本文件中)

          2. 觀察數據的特點,然后進行數據格式化——把一些符號(如:(,),億元、等替換成,適當分割數據,形成列數據)

          3. 導入excel軟件,排序,分析——導入100.txt到excel軟件,進一步整理,補全標題行,補齊數據,并根據需要排序

          4. 改名,并存檔——把100.txt另存為excel格式的文件,并修改文件標簽名。

          詳細的操作,見視頻。

          最終的,按照人均數的部分排名截圖(前20名):

          說明:

          視頻是操作流程,由作者本人錄制,時長21:30居然。

          在查找數據時,用時稍長,但同時也告訴了你去哪里找數據,如何查數據,另外,還有一些有價值的話,喜歡的可以看看。

          <script src="https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>

          建議在wifi下觀看視頻(土豪可以隨意),以后會盡量壓縮視頻的時間長度,或使用截圖來說明。

          既然錄了,傳一次視頻,看看反響如何,(未錄制文件更名的操作)

          若喜歡的人多,繼續嘗試視頻,若一般,則會修正。

          感謝您的閱讀,聰明人可以不用看視頻,了解思路即可。

          寫Excel文件是在做數據分析相關工作時非常常見的一個操作,也經常有同學問起相關的問題。

          今天就跟大家詳細分享一下,如何通過Pandas來讀取Excel文件里的數據,以及如何將DataFrame保存到Excel文件中

          官網參數詳解:

          https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html

          參數

          read_excel函數能夠讀取的格式包含:xls, xlsx, xlsm, xlsb, odf, ods 和 odt 文件擴展名。支持讀取單一sheet或幾個sheet。

          以下是官方文檔中提供的全部參數信息:

          pandas.read_excel(
            io,    
            sheet_name=0, 
            header=0, 
            names=None, 
            index_col=None, 
            usecols=None, 
            squeeze=None, 
            dtype=None, 
            engine=None, 
            converters=None, 
            true_values=None, 
            false_values=None, 
            skiprows=None, 
            nrows=None, 
            na_values=None,
            keep_default_na=True, 
            na_filter=True, 
            verbose=False, 
            parse_dates=False, 
            date_parser=None, 
            thousands=None, 
            decimal='.', 
            comment=None, 
            skipfooter=0, 
            convert_float=None, 
            mangle_dupe_cols=True, 
            storage_options=None
          )
          

          常用參數的含義:

          • io:文件路徑,支持 str, bytes, ExcelFile, xlrd.Book, path object, or file-like object。默認讀取第一個sheet的內容。案例:"/desktop/student.xlsx"
          • sheet_name:sheet表名,支持 str, int, list, or None;默認是0,索引號從0開始,表示第一個sheet。案例:sheet_name=1, sheet_name="sheet1",sheet_name=[1,2,"sheet3"]。None 表示引用所有sheet
          • header:表示用第幾行作為表頭,支持 int, list of int;默認是0,第一行的數據當做表頭。header=None表示不使用數據源中的表頭,Pandas自動使用0,1,2,3…的自然數作為索引。
          • names:表示自定義表頭的名稱,此時需要傳遞數組參數。
          • index_col:指定列屬性為行索引列,支持 int, list of int, 默認是None,也就是索引為0,1,2,3等自然數的列用作DataFrame的行標簽。如果傳入的是列表形式,則行索引會是多層索引
          • usecols:待解析的列,支持 int, str, list-like, or callable ,默認是 None,表示解析全部的列。
          • dtype:指定列屬性的字段類型。案例:{‘a’: np.float64, ‘b’: np.int32};默認為None,也就是不改變數據類型。
          • engine:解析引擎;可以接受的參數有"xlrd"、"openpyxl"、"odf"、"pyxlsb",用于使用第三方的庫去解析excel文件
            • “xlrd”支持舊式 Excel 文件 (.xls)
            • “openpyxl”支持更新的 Excel 文件格式
            • “odf”支持 OpenDocument 文件格式(.odf、.ods、.odt)
            • “pyxlsb”支持二進制 Excel 文件
          • converters:對指定列進行指定函數的處理,傳入參數為列名與函數組成的字典,和usecols參數連用。key 可以是列名或者列的序號,values是函數,可以自定義的函數或者Python的匿名lambda函數
          • skiprows:跳過指定的行(可選參數),類型為:list-like, int, or callable
          • nrows:指定讀取的行數,通常用于較大的數據文件中。類型int, 默認是None,讀取全部數據
          • na_values:指定列的某些特定值為NaN
          • keep_default_na:是否導入空值,默認是導入,識別為NaN

          模擬數據

          現在模擬兩個數據:Pandas_Excel.xls 和 Pandas_Excel.xlsx

          Pandas_Excel.xls 文件中包含兩個sheet,第二個數據只比第一個多個index的信息

          1、sheet1的內容

          image-20220423115151077

          2、sheet2的內容

          3、Pandas_Excel.xlsx的內容,模擬的完整信息:

          import pandas as pd
          

          默認情況

          此時文件剛好在當前目錄下,讀取的時候指定文件名即可,可以看到讀取的是第一個sheet

          df=pd.read_excel("Pandas-Excel.xls")
          df
          


          name

          age

          sex

          address

          date

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          2

          小明

          26

          未知

          深圳

          2022-04-05

          3

          張飛

          28

          蘇州

          2021-09-08

          4

          小蘇

          20

          NaN

          2022-06-07

          5

          小王

          0

          南京

          2022-05-09

          參數io

          填寫完整的文件路徑作為io的取值。也可以使用相對路徑

          pd.read_excel(r"/Users/peter/Desktop/pandas/Pandas-Excel.xls")
          


          name

          age

          sex

          address

          date

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          2

          小明

          26

          未知

          深圳

          2022-04-05

          3

          張飛

          28

          蘇州

          2021-09-08

          4

          小蘇

          20

          NaN

          2022-06-07

          5

          小王

          0

          南京

          2022-05-09

          參數sheet_name

          # pd.read_excel("Pandas-Excel.xls", sheet_name=0) # 效果同上
          
          # 直接指定sheet的名字
          pd.read_excel("Pandas-Excel.xls", sheet_name="Sheet1") # 效果同上
          


          name

          age

          sex

          address

          date

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          2

          小明

          26

          未知

          深圳

          2022-04-05

          3

          張飛

          28

          蘇州

          2021-09-08

          4

          小蘇

          20

          NaN

          2022-06-07

          5

          小王

          0

          南京

          2022-05-09

          換成讀取第二個sheet:名稱是Sheet2

          pd.read_excel("Pandas-Excel.xls", sheet_name="Sheet2") 
          


          index

          name

          age

          sex

          address

          date

          0

          1

          張三

          23

          深圳

          2022-04-01

          1

          2

          李四

          16

          廣州

          2022-04-02

          2

          3

          小明

          26

          未知

          深圳

          2022-04-05

          3

          4

          張飛

          28

          蘇州

          2021-09-08

          4

          5

          小蘇

          20

          NaN

          2022-06-07

          5

          6

          小王

          0

          南京

          2022-05-09

          結果中多了一列index的取值

          參數header

          # 和默認情況相同
          
          pd.read_excel("Pandas-Excel.xls", header=[0]) 
          


          name

          age

          sex

          address

          date

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          2

          小明

          26

          未知

          深圳

          2022-04-05

          3

          張飛

          28

          蘇州

          2021-09-08

          4

          小蘇

          20

          NaN

          2022-06-07

          5

          小王

          0

          南京

          2022-05-09

          pd.read_excel("Pandas-Excel.xls", header=[1])  # 單個元素
          

          第一行的數據當做列屬性:


          張三

          23

          深圳

          2022-04-01 00:00:00

          0

          李四

          16

          廣州

          2022-04-02

          1

          小明

          26

          未知

          深圳

          2022-04-05

          2

          張飛

          28

          蘇州

          2021-09-08

          3

          小蘇

          20

          NaN

          2022-06-07

          4

          小王

          0

          南京

          2022-05-09

          傳入多個元素會形成多層索引:

          pd.read_excel("Pandas-Excel.xls", header=[0,1])   # 多個元素
          


          name

          age

          sex

          address

          date


          張三

          23

          深圳

          2022-04-01 00:00:00

          0

          李四

          16

          廣州

          2022-04-02

          1

          小明

          26

          未知

          深圳

          2022-04-05

          2

          張飛

          28

          蘇州

          2021-09-08

          3

          小蘇

          20

          NaN

          2022-06-07

          4

          小王

          0

          南京

          2022-05-09

          參數names

          # 指定列名稱
          
          pd.read_excel("Pandas-Excel.xls", names=["a","b","c","d","e"])   
          


          a

          b

          c

          d

          e

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          2

          小明

          26

          未知

          深圳

          2022-04-05

          3

          張飛

          28

          蘇州

          2021-09-08

          4

          小蘇

          20

          NaN

          2022-06-07

          5

          小王

          0

          南京

          2022-05-09

          參數index_col

          # 指定單個元素作為索引
          pd.read_excel("Pandas-Excel.xls", index_col=[0]) 
          


          age

          sex

          address

          date

          name





          張三

          23

          深圳

          2022-04-01

          李四

          16

          廣州

          2022-04-02

          小明

          26

          未知

          深圳

          2022-04-05

          張飛

          28

          蘇州

          2021-09-08

          小蘇

          20

          NaN

          2022-06-07

          小王

          0

          南京

          2022-05-09

          # 多個元素
          pd.read_excel("Pandas-Excel.xls", index_col=[0,1])   
          



          sex

          address

          date

          name

          age




          張三

          23

          深圳

          2022-04-01

          李四

          16

          廣州

          2022-04-02

          小明

          26

          未知

          深圳

          2022-04-05

          張飛

          28

          蘇州

          2021-09-08

          小蘇

          20

          NaN

          2022-06-07

          小王

          0

          南京

          2022-05-09

          參數usecols

          pd.read_excel("Pandas-Excel.xls", usecols=[0])   # 單個字段
          


          name

          0

          張三

          1

          李四

          2

          小明

          3

          張飛

          4

          小蘇

          5

          小王

          pd.read_excel("Pandas-Excel.xls", usecols=[0,2,4])   # 多個字段
          


          name

          sex

          date

          0

          張三

          2022-04-01

          1

          李四

          2022-04-02

          2

          小明

          未知

          2022-04-05

          3

          張飛

          2021-09-08

          4

          小蘇

          2022-06-07

          5

          小王

          2022-05-09

          # 直接指定名稱
              
          pd.read_excel("Pandas-Excel.xls", usecols=["age","sex"])  
          


          age

          sex

          0

          23

          1

          16

          2

          26

          未知

          3

          28

          4

          20

          5

          0

          # 傳入匿名函數,字段中包含a,結果sex沒有了
          
          pd.read_excel("Pandas-Excel.xls", usecols=lambda x: "a" in x)
          


          name

          age

          address

          date

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          2

          小明

          26

          深圳

          2022-04-05

          3

          張飛

          28

          蘇州

          2021-09-08

          4

          小蘇

          20

          NaN

          2022-06-07

          5

          小王

          0

          南京

          2022-05-09

          參數dtype

          df.dtypes  
          
          name               object
          age                 int64
          sex                object
          address            object
          date       datetime64[ns]
          dtype: object
          

          從上面的結果中看到age字段,在默認情況下讀取的是int64類型:

          # 指定數據類型
          df1=pd.read_excel("Pandas-Excel.xls", dtype={"age":"float64"})
          
          # 查看字段信息
          df1.dtypes
          
          name               object
          age               float64  # 修改
          sex                object
          address            object
          date       datetime64[ns]
          dtype: object
          

          參數engine

          # xls 結尾
          
          pd.read_excel("Pandas-Excel.xls", engine="xlrd")
          


          name

          age

          sex

          address

          date

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          2

          小明

          26

          未知

          深圳

          2022-04-05

          3

          張飛

          28

          蘇州

          2021-09-08

          4

          小蘇

          20

          NaN

          2022-06-07

          5

          小王

          0

          南京

          2022-05-09

          # xlsx 結尾
          pd.read_excel("Pandas-Excel.xlsx", engine="openpyxl")
          


          name

          age

          sex

          address

          date

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          2

          小明

          26

          深圳

          2022-04-05

          3

          張飛

          28

          蘇州

          2021-09-08

          4

          小蘇

          20

          杭州

          2022-06-07

          5

          小王

          25

          南京

          2022-05-09

          參數converters

          pd.read_excel("Pandas-Excel.xlsx")  # 默認操作
          


          name

          age

          sex

          address

          date

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          2

          小明

          26

          深圳

          2022-04-05

          3

          張飛

          28

          蘇州

          2021-09-08

          4

          小蘇

          20

          杭州

          2022-06-07

          5

          小王

          25

          南京

          2022-05-09

          pd.read_excel("Pandas-Excel.xlsx", 
                        usecols=[1,3],  # 1-age  3-address 數值為原索引號
                        converters={0:lambda x: x+5,  # 0代表上面[1,3]中的索引號
                                    1:lambda x: x + "市"
                                   })
          


          age

          address

          0

          28

          深圳市

          1

          21

          廣州市

          2

          31

          深圳市

          3

          33

          蘇州市

          4

          25

          杭州市

          5

          30

          南京市

          參數skiprows

          pd.read_excel("Pandas-Excel.xls")   # 默認情況
          


          name

          age

          sex

          address

          date

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          2

          小明

          26

          未知

          深圳

          2022-04-05

          3

          張飛

          28

          蘇州

          2021-09-08

          4

          小蘇

          20

          NaN

          2022-06-07

          5

          小王

          0

          南京

          2022-05-09

          把張三和李四所在的行直接跳過:

          pd.read_excel("Pandas-Excel.xls", skiprows=2)
          


          李四

          16

          廣州

          2022-04-02 00:00:00

          0

          小明

          26

          未知

          深圳

          2022-04-05

          1

          張飛

          28

          蘇州

          2021-09-08

          2

          小蘇

          20

          NaN

          2022-06-07

          3

          小王

          0

          南京

          2022-05-09

          # 跳過偶數行
          
          pd.read_excel("Pandas-Excel.xls", skiprows=lambda x: x%2==0)
          


          張三

          23

          深圳

          2022-04-01 00:00:00

          0

          小明

          26

          未知

          深圳

          2022-04-05

          1

          小蘇

          20

          NaN

          2022-06-07

          參數nrows

          # 指定讀取的行數
          
          pd.read_excel("Pandas-Excel.xls", nrows=2)
          


          name

          age

          sex

          address

          date

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          參數na_values

          pd.read_excel("Pandas-Excel.xls")  # 默認
          


          name

          age

          sex

          address

          date

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          2

          小明

          26

          未知

          深圳

          2022-04-05

          3

          張飛

          28

          蘇州

          2021-09-08

          4

          小蘇

          20

          NaN

          2022-06-07

          5

          小王

          0

          南京

          2022-05-09

          pd.read_excel("Pandas-Excel.xls", 
                        na_values={"sex":"未知"})
          

          sex字段中的未知顯示成了NaN:


          name

          age

          sex

          address

          date

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          2

          小明

          26

          NaN

          深圳

          2022-04-05

          3

          張飛

          28

          蘇州

          2021-09-08

          4

          小蘇

          20

          NaN

          2022-06-07

          5

          小王

          0

          南京

          2022-05-09

          參數keep_default_na

          pd.read_excel("Pandas-Excel.xls")  # 默認keep_default_na=True
          


          name

          age

          sex

          address

          date

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          2

          小明

          26

          未知

          深圳

          2022-04-05

          3

          張飛

          28

          蘇州

          2021-09-08

          4

          小蘇

          20

          NaN

          2022-06-07

          5

          小王

          0

          南京

          2022-05-09

          pd.read_excel("Pandas-Excel.xls", keep_default_na=False)
          


          name

          age

          sex

          address

          date

          0

          張三

          23

          深圳

          2022-04-01

          1

          李四

          16

          廣州

          2022-04-02

          2

          小明

          26

          未知

          深圳

          2022-04-05

          3

          張飛

          28

          蘇州

          2021-09-08

          4

          小蘇

          20


          2022-06-07

          5

          小王

          0

          南京

          2022-05-09

          輸出到excel文件

          簡單模擬一份數據:

          df2=pd.DataFrame({"num1":[1,2,3],
                             "num2":[4,5,6],
                             "num3":[7,8,9]})
          df2
          


          num1

          num2

          num3

          0

          1

          4

          7

          1

          2

          5

          8

          2

          3

          6

          9

          df2.to_excel("newdata_1.xlsx")
          

          效果如下:

          df2.to_excel("newdata_2.xlsx",index=False)
          

          不會帶上索引號

          以上就是對 Pandas 讀寫 Excel 相關方法及參數的詳細解讀。希望對你有所幫助。建議收藏一下以備不時之需。

          作者:Peter

          來源:尤而小屋


          主站蜘蛛池模板: 人妻少妇一区二区三区| 日韩精品一区二区三区在线观看l 日韩精品一区二区三区毛片 | 亚洲日韩一区二区一无码| 看电影来5566一区.二区| 国精品无码A区一区二区| 亚洲AV综合色区无码一区| 无码人妻精品一区二区三| 中文字幕av日韩精品一区二区| 波多野结衣AV一区二区三区中文| 无码中文字幕乱码一区| 精品视频在线观看一区二区三区| 韩日午夜在线资源一区二区| 国模吧一区二区三区| 无码中文字幕乱码一区| 亚洲福利视频一区二区| 人妻体内射精一区二区三区| 日韩成人无码一区二区三区| 激情内射亚州一区二区三区爱妻| 久久亚洲国产精品一区二区 | 日本精品高清一区二区2021| 亚洲一区视频在线播放| 国产一区二区三区不卡AV| 国产精品一区二区久久精品涩爱| 国产一区二区三区在线免费| 国产99精品一区二区三区免费 | 香蕉久久一区二区不卡无毒影院| 亚洲日本乱码一区二区在线二产线| 国产乱码精品一区二区三区四川人| 高清一区二区三区| 韩国福利一区二区美女视频 | 国产成人精品一区二区三区免费 | 日韩精品无码一区二区三区| 色国产在线视频一区| 色妞色视频一区二区三区四区| 波多野结衣精品一区二区三区 | 色精品一区二区三区| 久久精品免费一区二区| 国产人妖视频一区二区| 精品中文字幕一区在线| 亚洲爆乳精品无码一区二区| 国产一区三区二区中文在线|