詳解Pandas讀取csv文件時2個有趣的參數(shù)設(shè)置
導(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ù)。


其中大部分參數(shù)相信大家都應(yīng)該已經(jīng)非常熟悉,本文來介紹2個參數(shù)的不一樣用法。
給定一個模擬的csv文件,其中主要數(shù)據(jù)如下:

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

其中,值得注意的有兩點:
sep默認為",",如果傳入None,則C引擎由于不能自動檢測和解析分隔符,所以Python引擎將會自動應(yīng)用于解析和檢測(當然,C引擎的解析速度要更快一些,所以實際上這兩種解析引擎是各有利弊)
如果sep傳入?yún)?shù)超過1個字符,則其將會被視作正則表達式。實際上這也是一個強大的功能,但應(yīng)用場景不如前者實用


其中,可以看出parse_dates參數(shù)默認為False,同時支持4種自定義格式的參數(shù)的傳遞,包括:
傳入bool值,若傳入True值,則將嘗試解析索引列
傳入列表,并將列表中的每一列嘗試解析為日期格式;
傳入嵌套列表,并嘗試將每個子列表中的所有列拼接后解析為日期格式;
出啊如字典,其中key為解析后的新列名,value為原文件中的待解析的列索引的列表,例如示例中{'foo': [1, 3]}即是用于將原文件中的1和3列拼接解析,并重命名為foo

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

相關(guān)閱讀:
