<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>

          詳解Pandas讀取csv文件時2個有趣的參數(shù)設(shè)置

          共 1465字,需瀏覽 3分鐘

           ·

          2021-06-24 21:42


          導(dǎo)讀

          Pandas可能是廣大Python數(shù)據(jù)分析師最為常用的庫了,其提供了從數(shù)據(jù)讀取、數(shù)據(jù)預(yù)處理到數(shù)據(jù)分析以及數(shù)據(jù)可視化的全流程操作。其中,在數(shù)據(jù)讀取階段,應(yīng)用pd.read_csv讀取csv文件是常用的文件存儲格式之一。今天,本文就來分享關(guān)于pandas讀取csv文件時2個非常有趣且有用的參數(shù)。


          打開jupyter lab,鍵入pd.read_csv?并運行即可查看該API的常用參數(shù)注解,主要如下:


          其中大部分參數(shù)相信大家都應(yīng)該已經(jīng)非常熟悉,本文來介紹2個參數(shù)的不一樣用法。


          給定一個模擬的csv文件,其中主要數(shù)據(jù)如下:


          可以看到,這個csv文件主要有3列,列標題分別為year、month和day,但特殊之處在于其分隔符不是常規(guī)的comma,而是一個冒號。另外也顯而易見的是這三列拼湊起來是一個正常的年月日的日期格式。所以今天本文就來分享如何通過這兩個參數(shù)來實現(xiàn)巧妙的加載和自動解析。


          01 sep設(shè)置None觸發(fā)自動解析
          既然是csv文件(Comma-Separated Values),所以read_csv的默認sep是",",然而對于那些不是","分隔符的文件,該默認參數(shù)下顯然是不能正確解析的。此時,當然可以簡單的通過傳入正確的分隔符作為sep參數(shù)來實現(xiàn)正確加載,但如果文件的分隔符是未知的呢?實際上,我們可以無需傳入分隔符,而交由解析器自動解析。

          查看pd.read_csv中關(guān)于sep參數(shù)的介紹,可以看到如下說明:


          其中,值得注意的有兩點:

          • sep默認為",",如果傳入None,則C引擎由于不能自動檢測和解析分隔符,所以Python引擎將會自動應(yīng)用于解析和檢測(當然,C引擎的解析速度要更快一些,所以實際上這兩種解析引擎是各有利弊)

          • 如果sep傳入?yún)?shù)超過1個字符,則其將會被視作正則表達式。實際上這也是一個強大的功能,但應(yīng)用場景不如前者實用


          基于上述對sep參數(shù)的理解,為了正確加載和解析前述的示例文件,只需將傳入sep=None即可:


          02 parse_dates實現(xiàn)日期多列拼接
          在完成csv文件正確解析的基礎(chǔ)上,下面通過parse_dates參數(shù)實現(xiàn)日期列的拼接。首先仍然是查看API文檔中關(guān)于該參數(shù)的注解:


          其中,可以看出parse_dates參數(shù)默認為False,同時支持4種自定義格式的參數(shù)的傳遞,包括:

          • 傳入bool值,若傳入True值,則將嘗試解析索引列

          • 傳入列表,并將列表中的每一列嘗試解析為日期格式;

          • 傳入嵌套列表,并嘗試將每個子列表中的所有列拼接后解析為日期格式;

          • 出啊如字典,其中key為解析后的新列名,value為原文件中的待解析的列索引的列表,例如示例中{'foo': [1, 3]}即是用于將原文件中的1和3列拼接解析,并重命名為foo


          基于上述理解,完成前面的特殊csv文件中三列拼接解析為日期的需求就非常容易,即將0/1/2列拼接解析就可以了。實現(xiàn)如下:


          不得不說,pandas提供的這些函數(shù)的參數(shù)可真夠豐富的了!




          相關(guān)閱讀:


          瀏覽 69
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  98无码人妻精品一区二区三区 | 日韩一区二区三区中文高清电影 | 丁香婷婷综合激情五月色 | 91麻豆精品美女 | 天天逼网 |