詳解Pandas讀取csv文件時2個有趣的參數設置

2022-01-05 小數志

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

打開jupyter lab,鍵入pd.read_csv?並運行即可查看該API的常用參數註解,主要如下:

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

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

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

既然是csv文件(Comma-Separated Values),所以read_csv的默認sep是",",然而對於那些不是","分隔符的文件,該默認參數下顯然是不能正確解析的。此時,當然可以簡單的通過傳入正確的分隔符作為sep參數來實現正確加載,但如果文件的分隔符是未知的呢?實際上,我們可以無需傳入分隔符,而交由解析器自動解析。
查看pd.read_csv中關於sep參數的介紹,可以看到如下說明:

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

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

如果sep傳入參數超過1個字符,則其將會被視作正則表達式。實際上這也是一個強大的功能,但應用場景不如前者實用

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

在完成csv文件正確解析的基礎上,下面通過parse_dates參數實現日期列的拼接。首先仍然是查看API文檔中關於該參數的註解:

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

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

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

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

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

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

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

相關閱讀:

點個在看可好

相關焦點

  • 一篇文章就能深入理解pandas讀取excel,txt,csv文件等命令
    接下來說一下index_col的常見用途在讀取文件的時候,如果不設置indexcol列索引,默認會使用從0開始的整數索引。當對表格的某一行或列進行操作之後,在保存成文件的時候你會發現總是會多一列從0開始的列,如果設置indexcol參數來設置列索引,就不會出現這種問題了。
  • python項目實踐分享:使用pandas處理大型CSV文件
    當dialect設置為excel的時候,默認Dialect的值如下:2.csv.writer(csvfilc, dialcct='excer', **fmtparams),用於寫入CSV文件。參數同上。來看一個使用例子。
  • Pandas數據清洗系列:read_csv函數詳解(一)
    不像做科研需要親自收集數據,日常工作中的數據都是現成的,存儲在資料庫或者文本文件中。我們首先需要做的就是從資料庫或者文本文件中將數據讀取到Python中,然後再進行後續的分析。在文本文件中,逗號分隔符文件(csv文件,指的是數據列之間使用逗號分隔,當然也可以不是逗號)可以說是最常見的一種了。pandas中提供了read_csv函數來讀取csv文件,今天我們來學習這個函數。
  • 127、使用pandas讀取文本文件
    pandas提供了一些用於將表格型數據讀取為DataFrame對象的函數,其中常用read_csv和read_table讀取文件。0.png下面出現的例子中需要讀取的文件都存放在我自己的電腦 D:Pytho\notebookpydata-book-masterch06 中。
  • 如果你也用「pandas.read_csv」處理文本,這幾個參數你應該掌握
    我相信使用pandas的同學們,基本都會用到這個方法:read_csv()。這個方法確實簡單易用,但是內置參數特別多,所以今天就分享下這個方法的一些使用技巧。02參數詳解filepath_or_buffer這是唯一的位置參數,必須進行傳遞。
  • Pandas數據清洗系列:read_csv函數詳解(三)
    接上一篇文章:Pandas數據清洗系列:read_csv函數詳解(二)我們學習read_csv函數中剩下的參數。na_filter我們可以控制pandas在讀取數據時是否自動檢測數據中的缺失值。這個參數就是用來控制這個行為的。默認為True表示檢測缺失值,如果設置為False,表示不檢測缺失值,這樣可以提高數據讀取的速度。需要注意的是,當這個參數設置為False時,na_values和keep_default_na兩個參數將被忽略,這很容易理解。
  • 乾貨 | pandas讀取csv文件數據的方法及注意點
    這篇文章介紹了利用數據分析工具pandas讀取csv文件的方法和注意點,便於迅速過渡到數據處理階段。pandas是一個高效的數據分析工具。基於其高度抽象的數據結構DataFrame,幾乎可以對數據進行任何你想要的操作。由於現實世界中數據源的格式非常多,pandas也支持了不同數據格式的導入方法,本文介紹pandas如何從csv文件中導入數據。
  • Pandas數據清洗系列:read_csv函數詳解(二)
    接上一篇文章:Pandas數據清洗系列:read_csv函數詳解(一)。我們繼續學習read_csv函數中的參數。object則可以看作是pandas中的字符串類型。pandas默認處理的結果我們並不滿意,例如第一列id,我們發現原始數據是字符01、02、03,pandas卻處理成了純整數1、2、3。如果我們想對此進行修改,就可以使用dtype這個參數。dtype參數可以接收一個數據類型名,也可以接收列:類型構成的字典:接收一個數據類型名,此時所有列都被設置成這個數據類型。
  • Python--Pandas操作csv文件及其參數解釋
    一、讀取和保存csv文件讀取:
  • python pandas解決csv文件中的部分注釋問題
    由於通過添加注釋,文件通常可以更加清晰明了。csv文件中有注釋,這種情況是可能存在的。
  • 用Python讀取大型CSV文件
    如果你遇到一個大的CSV文件,你想處理它,你有幾個選擇。如果你可以一次處理其中的一部分,你可以把它讀成塊,然後處理每個塊。如果您知道您應該有足夠的內存來加載文件,縮小文件大小再讀取。這裡需要注意,一般來說,你應該有三到十倍於你要操作的DataFrame大小的內存。額外的內存應該給你足夠的額外空間來執行許多常見的操作。
  • 《pandas數據讀取》
    ,需要使用不同的函數讀取,pandas內置了10餘種數據源讀取函數和對應的數據寫入函數,常見的數據源有3種,分別是資料庫數據,文本文件(包含一般文本文件和CSV文件)和Excel文件,掌握這三種數據源讀取方法,便能夠完成80%左右的數據讀取工作。
  • python(pandas)讀取外部數據---使用Pandas讀寫操作txt文件
    1、準備.txt的數據文件其實pandas讀寫.txt文件和讀寫csv文件是類似的,而且使用的都是pd.read_csv()  /
  • pandas讀取數據(1)
    函數描述read_csv讀取csv文件,逗號為默認的分隔符read_table讀取table文件,也就是txt文件,制表符('\t')為默認分隔符read_clipboardread_table的剪貼板版本,在將表格從Web頁面轉換成數據時有用read_excel讀取XLS或XLSX文件read_hdf讀取pandas存儲的HDF5
  • pandas庫讀取csv文件
    csv文件讀取比較人性化的庫就是pandas,我之前一直在mac上用,確實讓人愛不釋手。但昨天直播前將代碼放到window時候,代碼就這樣神奇的報錯了。直播完後立馬有朋友告訴我解決辦法,特此連夜分享,方便大家將爬到的微博csv文件數據進行分析。本文只是為了解決csv在windows讀取問題而寫,內容不多。對pandas感興趣的可以看文檔或者去百度下常用方法。文章末尾附上數據及腳本,大家可以照著本文敲打運行下。
  • 居然翻了 pandas.read_csv 的船
    實在沒想到居然栽在pandas.read_csv上了,這裡分享一下,希望引起大家注意,順便重溫一下read_csv的各種參數。業務數據不方便拿出來演示,為儘可能復現,這裡我手造了一份,另存為 income.csv 文件。
  • Pandas進階Excel(一)——讀取
    對於安裝,請自行百度,不在贅述,簡單而言兩條命令:安裝:cmd——輸入 pip install pandas導入:import pandas as pd一、讀取Excel文件,以下是幾個常用的參數釋義二、讀取csv文件,與讀取xlsx的參數差不多
  • 使用pandas進行文件讀寫
    pandas是數據分析的利器,既然是處理數據,首先要做的當然是從文件中將數據讀取進來。
  • 用Pandas讀取CSV,看這篇就夠了
    filepath_or_buffer為第一個參數,沒有默認值,也不能為空,根據Python的語法,第一個參數傳參時可以不寫參數名。# 格式為字符型str# 表頭為c_0、c_2pd.read_csv(data, prefix='c_', header=None)如果該參數為True,當列名有重複時,解析列名將變為X, X.1, …, X.N,而不是X, …, X。如果該參數為False,那麼當列名中有重複時,前列將會被後列覆蓋。
  • python讀取csv簡明教程
    csv庫讀取Python提供了CSV模塊來處理CSV文件csv.field_size_limit –返回最大欄位大小csv.get_dialect –獲取與名稱相關的方言csv.list_dialects –顯示所有已註冊的方言csv.reader –從csv文件讀取數據csv.register_dialect-將方言與名稱相關聯csv.writer –將數據寫入