1. 程式人生 > >床頭筆記之pandas.read_csv

床頭筆記之pandas.read_csv

pandas使用常用函式翻譯pandas.read_csv

pandas.read_csv(filepath_or_buffer, sep=’, ‘, delimiter=None, header=‘infer’, names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression=‘infer’, thousands=None, decimal=b’.’, lineterminator=None, quotechar=’"’, quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, doublequote=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)

常用引數:

filepath_or_buffer : str, pathlib.Path, py._path.local.LocalPath or any \檔案路徑名字串,或任何具有read()方法的物件(例如檔案控制代碼或StringIO)例如,本地檔案可以是file://localhost/path/to/table.csv

sep:str,預設’,’ 分割符,超過一個字元將視作正則表示式,正則表示式示例:’\r\t’

encoding:str,預設無 編碼以在讀/寫時用於UTF(例如’utf-8’)。Python標準編碼列表

header:int或int列表,預設’推斷’ 用作列名的行號和資料的開頭。 預設行為是推斷列名:如果沒有傳遞名稱,則與header = 0行為相同,並且從檔案的第一行推斷列名,如果顯式傳遞列名,則行為與header = None相同。 顯式傳遞header = 0以便能夠替換現有名稱。 標題可以是整數列表,其指定列上的多索引的行位置,例如[0,1,3]。 將跳過未指定的干預行(例如,跳過此示例中的2)。 請注意,此引數忽略註釋行和空行ifskip_blank_lines = True,因此header = 0表示第一行資料而不是檔案的第一行。

例項:

data_df = pd.read_csv(‘table.csv’, header=0, encoding=“utf-8”)

引數:

filepath_or_buffer : str,pathlib.Path,py._path.local.LocalPath或者任何具有read()方法的物件(例如檔案控制代碼或StringIO)該字串可以是一個URL。有效的URL方案包括http,ftp,s3和file。對於檔案URL,需要主機。例如,本地檔案可以是file://localhost/path/to/table.csv

sep:str,預設’,‘分隔符使用。如果sep為None,則C引擎無法自動檢測分隔符,但Python解析引擎可以,這意味著後者將被使用並通過Python的內建嗅探器工具自動檢測分隔符csv.Sniffer。此外,長度超過1個字元且與分隔符’\s+‘不同將被解釋為正則表示式,並且還將強制使用Python解析引擎。請注意,正則表示式分隔符很容易忽略引用的資料。正則表示式示例:’\r\t’

delimiter:str,預設None

sep的替代引數名稱。

delim_whitespace:布林值,預設為False

指定是否將空格(例如或)用作sep。相當於設定。如果此選項設定為True,則不應為 引數傳遞任何內容。’ ‘’\t’sep=’\s+'delimiter

版本0.18.1中的新增功能:支援Python解析器。

header:int或int列表,預設’推斷’

用作列名的行號和資料的開頭。預設行為是推斷列名:如果沒有傳遞名稱,則行為相同,header=0並且從檔案的第一行推斷列名,如果顯式傳遞列名,則行為相同 header=None。明確傳遞header=0以能夠替換現有名稱。標頭可以是整數列表,其指定列上的多索引的行位置,例如[0,1,3]。將跳過未指定的干預行(例如,跳過此示例中的2)。請注意,此引數忽略註釋行和空行if skip_blank_lines=True,因此header = 0表示第一行資料而不是檔案的第一行。

names:array-like,預設為None

要使用的列名列表。如果檔案不包含標題行,則應顯式傳遞header = None。此列表中的重複項將導致UserWarning釋出。

index_col:int或sequence或False,預設為None

用作DataFrame的行標籤的列。如果給出序列,則使用MultiIndex。如果在每行末尾有一個帶有分隔符的格式錯誤的檔案,您可能會考慮使用index_col = False來強制pandas使用第一列作為索引(行名稱)

usecols:list-like或callable,預設為None

返回列的子集。如果類似列表,則所有元素必須是位置(即文件列中的整數索引)或與使用者名稱稱或從文件標題行推斷的列名對應的字串。例如,有效的類似列表的 usecols引數將是[0,1,2]或[‘foo’,‘bar’,‘baz’]。元素順序被忽略,因此也是如此。要從保留元素順序例項化DataFrame,請按順序使用 列或 按順序使用。usecols=[0, 1][1, 0]datapd.read_csv(data, usecols=[‘foo’, ‘bar’])[[‘foo’, ‘bar’]][‘foo’, ‘bar’]pd.read_csv(data, usecols=[‘foo’, ‘bar’])[[‘bar’, ‘foo’]][‘bar’, ‘foo’]

如果是可呼叫的,則將根據列名評估可呼叫函式,返回可呼叫函式求值為True的名稱。一個有效的可呼叫引數的例子是。使用此引數可以大大加快解析時間並降低記憶體使用率。lambda x: x.upper() in [‘AAA’, ‘BBB’, ‘DDD’]

squeeze:boolean,預設為False

如果解析的資料只包含一列,則返回一個Series

prefix:str,預設無

沒有標題時新增到列號的字首,例如X0,X1的“X”,…

mangle_dupe_cols:布林值,預設為True

重複的列將被指定為’X’,‘X.1’,…‘X.N’,而不是’X’…‘X’。如果列中存在重複的名稱,則傳入False將導致資料被覆蓋。

dtype:列的型別名稱或字典 - >型別,預設為無

資料或列的資料型別。例如{‘a’:np.float64,‘b’:np.int32}將str或object與合適的na_values設定一起使用以保留和不解釋dtype。如果指定了轉換器,則它們將應用於dtype轉換的INSTEAD。

引擎:{‘c’,‘python’},可選

使用解析器引擎。C引擎速度更快,而python引擎目前功能更加完善。

converter:dict,預設無

用於轉換某些列中的值的函式的字典。鍵可以是整數或列標籤

true_values:list,預設無

要考慮為True的值

false_values:list,預設無

要考慮為False的值

skipinitialspace:布林值,預設為False

分隔符後跳過空格。

skiprows:list-like或integer或callable,預設為None

要在檔案開頭跳過(0索引)或要跳過的行數(int)的行號。

如果是可呼叫的,則將根據行索引計算可呼叫函式,如果應該跳過該行則返回True,否則返回False。一個有效的可呼叫引數的例子是。lambda x: x in [0, 2]

skipfooter:int,預設值為0

要跳過的檔案底部的行數(不支援engine =‘c’)

nrows:int,預設無

要讀取的檔案行數。用於讀取大檔案

na_values:標量,str,list-like或dict,預設無

要識別為NA / NaN的其他字串。如果dict通過,則具體的每列NA值。預設情況下,以下值被解釋為NaN:’’,’#N / A’,’#N / AN / A’,’#N’,’ - 1。#IND’,’ - 。#QNAN’, ‘-NaN’,’ - nan’,‘1。#IND’,‘1。#QNAN’,‘N / A’,‘NA’,‘NULL’,‘NaN’,‘n / a’,'nan ', ‘空值’。

keep_default_na:bool,預設為True

解析資料時是否包含預設NaN值。根據是否傳入na_values,行為如下:

如果keep_default_na為True,並且na_values指定,na_values 附加到預設用於解析NaN值。 如果keep_default_na為True,並且未指定na_values,則僅使用預設NaN值進行解析。 如果keep_default_na是假,和na_values指定,只有指定的NaN值na_values用於解析。 如果keep_default_na為False,並且未指定na_values,則不會將任何字串解析為NaN。 請注意,如果將na_filter作為False 傳入,則將忽略keep_default_na和 na_values引數。

na_filter:布林值,預設為True

檢測缺失值標記(空字串和na_values的值)。在沒有任何NA的資料中,傳遞na_filter = False可以提高讀取大檔案的效能

verbose:布林值,預設為False

指示放置在非數字列中的NA值的數量

skip_blank_lines:布林值,預設為True

如果為True,則跳過空行而不是解釋為NaN值

parse_dates:boolean或int或名稱列表或列表或dict列表,預設為False

布林值。如果為True - >嘗試解析索引。 整體或名稱列表。例如,如果[1,2,3] - >嘗試將每個列1,2,3解析為一個單獨的日期列。 列表清單。例如,如果[[1,3]] - >將第1列和第3列組合在一起並解析為單個日期列。 dict,例如{‘foo’:[1,3]} - >將第1,3列解析為日期並呼叫結果’foo’ 如果列或索引包含不可解析的日期,則整個列或索引將作為物件資料型別以不變的方式返回。對於非標準日期時間解析,請pd.to_datetime在之後使用pd.read_csv

注意:iso8601格式的日期存在快速路徑。

infer_datetime_format:boolean,預設為False

如果啟用了True和parse_dates,pandas將嘗試推斷列中日期時間字串的格式,如果可以推斷,請切換到更快的解析方法。在某些情況下,這可以將解析速度提高5-10倍。

keep_date_col:布林值,預設為False

如果True和parse_dates指定組合多個列,則保留原始列。

date_parser:function,預設無

用於將字串列序列轉換為日期時間例項陣列的函式。預設用於dateutil.parser.parser進行轉換。Pandas將嘗試以三種不同的方式呼叫date_parser,如果發生異常則前進到下一個:1)將一個或多個數組(由parse_dates定義)作為引數傳遞 ; 2)將parse_dates定義的列中的字串值連線(逐行)到一個數組中並傳遞; 3)使用一個或多個字串(對應於parse_dates定義的列)作為引數,為每一行呼叫date_parser一次。

dayfirst:boolean,預設為False

DD / MM格式日期,國際和歐洲格式

iterator:boolean,預設為False

返回TextFileReader物件以進行迭代或獲取塊 get_chunk()。

chunksize:int,預設無

返回TextFileReader物件以進行迭代。有關和的 更多資訊,請參閱IO Tools文件。iteratorchunksize

compression :{‘infer’,‘gzip’,‘bz2’,‘zip’,‘xz’,無},預設’推斷’

用於磁碟上資料的即時解壓縮。如果’infer’和 filepath_or_buffer是類似路徑的,則從以下擴充套件中檢測壓縮:’。gz’,’。bz2’,’。zip’或’.xz’(否則無解壓縮)。如果使用’zip’,則ZIP檔案必須只包含一個要讀入的資料檔案。設定為None表示不進行解壓縮。

版本0.18.1中的新功能:支援’zip’和’xz’壓縮。

thousands :str,預設無

千位分隔符

decimal:str,預設’。’

要識別為小數點的字元(例如,對歐洲資料使用​​’,’)。

float_precision:string,預設無

指定C引擎應該將哪個轉換器用於浮點值。選項有沒有對於普通轉換器, 高的高精度轉換器,以及round_trip用於往返轉換器。

lineterminator:str(長度為1),預設為None

將檔案分成行的字元。僅對C解析器有效。

quotechar:str(長度為1),可選

用於表示引用專案的開頭和結尾的字元。引用的專案可以包括分隔符,它將被忽略。

quoting :int或csv.QUOTE_ *例項,預設為0

控制欄位引用每個csv.QUOTE_*常量的行為。使用QUOTE_MINIMAL(0),QUOTE_ALL(1),QUOTE_NONNUMERIC(2)或QUOTE_NONE(3)之一。

doublequote:布林值,預設值True

如果指定了quotechar且未引用QUOTE_NONE,則指示是否將欄位中的兩個連續的quotechar元素解釋為單個quotechar元素。

escapechar:str(長度為1),預設為None

引用時用於轉義分隔符的單字元字串是QUOTE_NONE。

comment:str,預設無

表示不應解析行的剩餘部分。如果在行的開頭找到,則該行將被完全忽略。此引數必須是單個字元。與空行(只要skip_blank_lines=True)一樣,引數標題會忽略完全註釋的行,但不會被 跳過。例如,如果comment=’#’,解析 #empty\na,b,c\n1,2,3與header=0將導致“A,B,C”被視為標題。

encoding:str,預設無

編碼以在讀/寫時用於UTF(例如’utf-8’)。Python標準編碼列表

dialect:str或csv.Dialect例項,預設為None

如果提供的話,該引數將覆蓋為以下引數的值(預設或不):分隔符,雙引號,escapechar, skipinitialspace,quotechar,和引用。如果需要覆蓋值,則會發出ParserWarning。有關更多詳細資訊,請參閱csv.Dialect文件。

tupleize_cols:boolean,預設為False

自版本0.21.0後不推薦使用:此引數將被刪除,並始終轉換為MultiIndex 按原樣在列上保留元組列表(預設是在列上轉換為MultiIndex)

error_bad_lines:布林值,預設為True

具有太多欄位的行(例如,具有太多逗號的csv行)將預設導致引發異常,並且不會返回任何DataFrame。如果為False,那麼這些“壞行”將從返回的DataFrame中刪除。

warn_bad_lines:布林值,預設為True

如果error_bad_lines為False,並且warn_bad_lines為True,則將輸出每個“壞行”的警告。

low_memory:布林值,預設為True

以塊的形式內部處理檔案,導致在解析時使用較少的記憶體,但可能是混合型別推斷。要確保沒有混合型別,請設定False,或使用dtype引數指定型別。請注意,整個檔案都被讀入單個DataFrame中,使用chunksize或iterator引數以塊的形式返回資料。(僅對C解析器有效)

memory_map:boolean,預設為False

如果為filepath_or_buffer提供了檔案路徑,則將檔案物件直接對映到記憶體並直接從那裡訪問資料。使用此選項可以提高效能,因為不再有任何I / O開銷。

返回: 結果 : DataFrame或TextParser