<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一個參數(shù)一個Excel表,讓你玩轉(zhuǎn)Pandas中read_excel()表格讀??!

          共 4105字,需瀏覽 9分鐘

           ·

          2020-08-28 11:50

          本文大綱

          我覺得很有必要講述這個文章,進行數(shù)據(jù)處理的第一步就是Python數(shù)據(jù)讀取。但是你可能沒想到,在進行數(shù)據(jù)讀取的同時,我們其實可以配合相關(guān)參數(shù)做很多事兒,這對于后續(xù)的數(shù)據(jù)處理都是極其有幫助。

          read_excel()函數(shù)和read_csv()函數(shù),在參數(shù)上面有很多相同點,因此我就以read_excel()函數(shù)為例,進行詳細的說明。

          參數(shù)詳解

          1)sheet_name參數(shù)

          • 含義:選擇要讀取的sheet表;
          • sheet_name=0表示默認讀取第一個sheet表,等同于sheet_name=“sheet名稱”;
          • sheet_name=[“sheet名”,0]會返回一個字典,然后可以利用鍵獲取每一個sheet表中的數(shù)據(jù);
          • sheet_name=None也會返回一個字典,但是會返回全部的sheet表;
          sheet_name=0和sheet_name="Sheet1"
          #?下面這兩個讀取方式等同。
          #df2?=?pd.read_excel("readexcel.xlsx",sheet_name=0)
          df2?=?pd.read_excel("readexcel.xlsx",sheet_name="Sheet1")
          df2

          結(jié)果如下:

          sheet_name=[“sheet名”,0]
          df2?=?pd.read_excel("readexcel.xlsx",sheet_name=[0,1])
          df2

          結(jié)果如下:

          接著,我們可以使用鍵值對的方式,獲取每個sheet表中的數(shù)據(jù)。

          注:關(guān)于sheet_name=None效果同上,只不過會返回所有的sheet表中的數(shù)據(jù)。

          2)header參數(shù)

          • 含義:指定某一行作為表頭;

          • header=None專門針對沒有表頭的表,這也是默認值;
          • header=1指定第一行作為表頭;
          • header=[]主要針對復合表頭的情況;
          header=None
          df3?=?pd.read_excel("header.xlsx",header=None)
          df3

          結(jié)果如下:

          ② ?header=1
          df3?=?pd.read_excel("header.xlsx",sheet_name=2,header=1)?
          df3

          結(jié)果如下:

          header=[]
          df3?=?pd.read_excel("header.xlsx",sheet_name=3,header=[0,1],index_col=0)?
          df3

          結(jié)果如下:

          注意:上述用到了一個index_col參數(shù),這個參數(shù)用于指定作為行索引的列,我就不詳細舉例了,看看下圖。

          3)usecols參數(shù)

          • 含義:選擇讀取一張表中的指定列;

          • usecols=None也是默認情況,表示讀取所有列;
          • usecols=[A,C]表示只選取A列和C列。usecols=[A,C:E]表示選擇A列,C列、D列和E列;
          • usecols=[0,2]表示只選擇第一列和第三列;
          • usecols=["列名1","列名2"...]這也是推薦使用的一種寫法;
          usecols=None
          df4?=?pd.read_excel("usecols.xlsx",usecols=None)?#?默認
          df4

          結(jié)果如下:

          usecols=[A,C]
          df4?=?pd.read_excel("usecols.xlsx",usecols="A,C")?
          df4

          結(jié)果如下:

          usecols=[A,C:D]
          df4?=?pd.read_excel("usecols.xlsx",usecols="A,C:D")?
          df4

          結(jié)果如下:

          usecols=[0,2]
          df4?=?pd.read_excel("usecols.xlsx",usecols=[0,2])?
          df4

          結(jié)果如下:

          usecols=["列名1","列名2"...]

          這種方式照說是沒有任何問題的,但是在我這邊運行總是無結(jié)果,我很納悶,大家可以下去試試。

          4)names參數(shù)

          • 含義:如果表中沒有表頭,可以用這個參數(shù)添加一個標題。如果表中有表頭,可以用這個參數(shù)修改標題。
          names?=?["月份","語文","英語"]
          df6?=?pd.read_excel("names.xlsx",header=None,names=names)?
          df6

          結(jié)果如下:

          5)dtype參數(shù)

          • 含義:讀取數(shù)據(jù)時,設(shè)置每一列的數(shù)據(jù)類型(重要);
          • dtype={}傳入一個字典,類似于{"列名":"類型"};
          df7?=?pd.read_excel("dtype.xlsx")
          df7.dtypes
          ------------------------------------------------------
          df7?=?pd.read_excel("dtype.xlsx",dtype={"年齡":"str"})
          df7.dtypes

          結(jié)果如下:

          6)parse_dates參數(shù)

          • 含義:指定將哪些列,解析為日期格式;
          • parse_dates=True是專門用于將行索引,解析為日期格式;
          • parse_dates=[0,1,2,3,4]和parse_dates=["列名1","列名2","列名3","列名4"],都是將指定列一起解析為日期格式;
          • parse_dates=[[1,2,3]]和parse_dates=[["年","月","日"]],都是將多個列,解析為單個日期列;
          • parse_dates={"日期":[1,2,3]}不僅將多個日期列解析為單個日期列,同時還為這一列命名;
          parse_dates=True
          df8?=?pd.read_excel("parse_dates",index_col=2,parse_dates=True)
          df8.index

          結(jié)果如下:

          parse_dates=[0,1]和parse_dates=["列名1","列名2"]
          df8?=?pd.read_excel("parse_dates",parse_dates=[0,1,2,3,4])
          df8.dtypes
          #?這個代碼效果同上
          df8?=?pd.read_excel("parse_dates.xlsx",
          ????????????????????parse_dates=["數(shù)值日期1","文本日期2","文本日期3","文本日期4","文本日期5"])

          結(jié)果如下:

          parse_dates=[[1,2,3]]和parse_dates=[["年","月","日"]]
          #df8?=?pd.read_excel("parse_dates.xlsx",sheet_name="Sheet2",parse_dates=[["年","月","日"]])
          df8?=?pd.read_excel("parse_dates.xlsx",sheet_name="Sheet2",parse_dates=[[1,2,3]])
          df8

          結(jié)果如下:

          parse_dates={"日期":[1,2,3]}
          df8?=?pd.read_excel("parse_dates.xlsx",sheet_name="Sheet2",parse_dates={"日期":[1,2,3]})
          df8

          結(jié)果如下:

          7)date_parser參數(shù)
          • 含義:利用lambda函數(shù),將某個字符串列,解析為日期格式;
          • 一般是配合parse_dates參數(shù),一起使用;
          df9?=?pd.read_excel("date_parser.xlsx",parse_dates=[1],
          ????????????????????date_parser=lambda?x:?pd.to_datetime(x,format="%Y年%m月%d"))
          print(df9.dtypes)
          df9

          結(jié)果如下:

          8)na_values參數(shù)

          • 含義:用于將某些特定的值,解析為NaN值,然后便于我們后面做缺失值的處理;
          • na_values=”值1“表示將所有數(shù)據(jù)中值1全部替換為NaN;
          • na_values=[”值1“,"值2"]表示將所有數(shù)據(jù)中值1、值2全部替換為NaN;
          • na_values={"列1":[”值1“,"值2"]}表示將第一列中所有的值1、值2全部替換為NaN;
          na_values=”值1“
          df10?=?pd.read_excel("na_values.xlsx",na_values="?")
          df10

          結(jié)果如下:

          na_values=[”值1“,"值2"]
          df10?=?pd.read_excel("na_values.xlsx",na_values=["a","0"])
          df10

          結(jié)果如下:

          na_values={"列1":[”值1“,"值2"]}
          #??只替換某一列中的某些值為NaN
          df10?=?pd.read_excel("na_values.xlsx",na_values={"列2":["0","?"]})
          df10

          結(jié)果如下:

          9)converters參數(shù)
          • 含義:對某一列使用Lambda函數(shù),進行某種運算;
          • 例如:converters={"工資":lambda x: x + 1000};
          df11?=?pd.read_excel("converters.xlsx",
          ?????????????????????converters={"地址":lambda?x:?"中國"+x,"工資":lambda?x:?x?+?1000})
          df11

          結(jié)果如下:


          后臺回復"readexcel" 獲取本文所用到的素材!



          由于微信平臺算法改版,公號內(nèi)容將不再以時間排序展示,如果大家想第一時間看到我們的推送,強烈建議星標我們和給我們多點點【在看】。星標具體步驟為:


          (1)點擊頁面最上方“小詹學Python”,進入公眾號主頁。


          (2)點擊右上角的小點點,在彈出頁面點擊“設(shè)為星標”,就可以啦。


          感謝支持,比心。


          瀏覽 51
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩操逼 | 日本一极黄色 | 国产美女丝袜足交视频 | 青青草男人天堂 | 日韩每日更新 |