- 用法:- pandas.read_csv(filepath_or_buffer, sep=NoDefault.no_default, delimiter=None, header='infer', names=NoDefault.no_default, index_col=None, usecols=None, squeeze=None, prefix=NoDefault.no_default, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=None, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, encoding_errors='strict', dialect=None, error_bad_lines=None, warn_bad_lines=None, on_bad_lines=None, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None, storage_options=None)
- 將逗號分隔值 (csv) 文件讀入 DataFrame。 - 還支持可選地將文件迭代或分解成塊。 - 更多幫助可以在 IO Tools 的在線文檔中找到。 - filepath_or_buffer:str,路徑對象或file-like對象
- 任何有效的字符串路徑都是可接受的。該字符串可以是一個 URL。有效的 URL 方案包括 http、ftp、s3、gs 和文件。對於文件 URL,需要一個主機。本地文件可以是:file://localhost/path/to/table.csv。 - 如果你想傳入一個路徑對象,pandas 接受任何 - os.PathLike。- 通過file-like 對象,我們指的是具有 - read()方法的對象,例如文件句柄(例如通過內置- open函數)或- StringIO。
- sep:str,默認“,”
- 要使用的分隔符。如果 sep 為 None,C 引擎無法自動檢測分隔符,但 Python 解析引擎可以,這意味著將使用後者並通過 Python 的內置嗅探工具 - csv.Sniffer自動檢測分隔符。此外,長度超過 1 個字符且不同於- '\s+'的分隔符將被解釋為正則表達式,並且還將強製使用 Python 解析引擎。請注意,正則表達式分隔符容易忽略引用的數據。正則表達式示例:- '\r\t'。
- delimiter:str,默認 None
- sep 的別名。 
- header:int,int 列表,無,默認 ‘infer’
- 用作列名的行號和數據的開頭。默認行為是推斷列名:如果沒有傳遞名稱,則行為與 - header=0相同,並且從文件的第一行推斷列名,如果顯式傳遞列名,則行為與- header=None相同.顯式傳遞- header=0以便能夠替換現有名稱。標題可以是一個整數列表,指定列上 multi-index 的行位置,例如[0,1,3]。未指定的中間行將被跳過(例如,此示例中的 2 被跳過)。請注意,如果- skip_blank_lines=True,此參數將忽略注釋行和空行,因此- header=0表示數據的第一行而不是文件的第一行。
- names:array-like,可選
- 要使用的列名列表。如果文件包含標題行,則應顯式傳遞 - header=0以覆蓋列名。不允許在此列表中重複。
- index_col:int, str, int /str 的序列,或 False,可選,默認 None
- 用作 - DataFrame的行標簽的列,以字符串名稱或列索引的形式給出。如果給出了 int /str 序列,則使用 MultiIndex。- 注意: - index_col=False可用於強製 pandas 不使用第一列作為索引,例如當您在每行末尾有一個帶有分隔符的格式錯誤的文件時。
- usecols:list-like 或可調用,可選
- 返回列的子集。如果list-like,所有元素必須是位置元素(即文檔列的整數索引)或與用戶提供的列名相對應的字符串 - names或從文檔標題行推斷。如果- names已給出,則不考慮文檔標題行。例如,有效的 list-like- usecols參數將是- [0, 1, 2]或者- ['foo', 'bar', 'baz'].元素順序被忽略,所以- usecols=[0, 1]是相同的- [1, 0].實例化一個 DataFrame 從- data保留元素順序使用- pd.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:布爾值,默認為 False
- 如果解析的數據隻包含一列,則返回一個係列。 
- prefix:str,可選
- 沒有標題時添加到列號的前綴,例如“X”代表 X0、X1、…… 
- mangle_dupe_cols:布爾值,默認為真
- 重複的列將被指定為“X”、“X.1”、……“X.N”,而不是“X”……“X”。如果列中存在重複名稱,則傳入 False 將導致數據被覆蓋。 
- dtype:類型名稱或列的字典 -> 類型,可選
- 數據或列的數據類型。例如: {‘a’:np.float64, ‘b’:np.int32, ‘c’:‘Int64’} 使用 - str或- object以及合適的- na_values設置來保留而不是解釋 dtype。如果指定了轉換器,則將應用它們代替 dtype 轉換。
- engine:{‘c’, ‘python’, ‘pyarrow’},可選
- 要使用的解析器引擎。 C和pyarrow引擎更快,而python引擎目前更多feature-complete。目前僅 pyarrow 引擎支持多線程。 
- converters:字典,可選
- 用於轉換某些列中的值的函數的字典。鍵可以是整數或列標簽。 
- true_values:列表,可選
- 值視為 True。 
- false_values:列表,可選
- 要考慮為 False 的值。 
- skipinitialspace:布爾值,默認為 False
- 分隔符後跳過空格。 
- skiprows:list-like,int 或可調用,可選
- 文件開頭要跳過的行號(0-indexed)或要跳過的行數(int)。 - 如果可調用,可調用函數將根據行索引進行評估,如果應該跳過該行,則返回 True,否則返回 False。一個有效的可調用參數的例子是 - lambda x:x in [0, 2]。
- skipfooter:整數,默認 0
- 要跳過的文件底部的行數(engine='c' 不支持)。 
- nrows:整數,可選
- 要讀取的文件行數。對於讀取大文件片段很有用。 
- na_values:標量、str、list-like 或 dict,可選
- 要識別為 NA/NaN 的附加字符串。如果 dict 通過,特定的 per-column NA 值。默認情況下,以下值被解釋為 NaN:''、'#N/A'、'#N/AN/A'、'#NA'、'-1.#IND'、'-1.#QNAN'、 '-NaN'、'-nan'、'1.#IND'、'1.#QNAN'、'<NA>'、'N/A'、'NA'、'NULL'、'NaN'、'n /a',‘nan’, ‘null’。 
- keep_default_na:布爾值,默認為真
- 解析數據時是否包含默認的 NaN 值。根據是否傳入 - na_values,行為如下:- 如果 - keep_default_na為 True,並且指定了- na_values,則將- na_values附加到用於解析的默認 NaN 值。
- 如果 - keep_default_na為 True,並且未指定- na_values,則僅使用默認的 NaN 值進行解析。
- 如果 - keep_default_na為 False,並且指定了- na_values,則僅使用指定的 NaN 值- na_values進行解析。
- 如果 - keep_default_na為 False,並且未指定- na_values,則不會將任何字符串解析為 NaN。
 - 請注意,如果 - na_filter作為 False 傳入,則- keep_default_na和- na_values參數將被忽略。
- na_filter:布爾值,默認為真
- 檢測缺失值標記(空字符串和na_values 的值)。在沒有任何 NA 的數據中,傳遞 na_filter=False 可以提高讀取大文件的性能。 
- verbose:布爾值,默認為 False
- 指示放置在非數字列中的 NA 值的數量。 
- skip_blank_lines:布爾值,默認為真
- 如果為 True,則跳過空行而不是解釋為 NaN 值。 
- parse_dates:bool 或 int 列表或名稱或列表或 dict 列表,默認為 False
- 行為如下: - 布爾值。如果 True -> 嘗試解析索引。 
- int 或名稱列表。例如如果 [1, 2, 3] -> 嘗試將第 1、2、3 列分別解析為單獨的日期列。 
- 列表列表。例如如果 [[1, 3]] -> 合並第 1 列和第 3 列並解析為單個日期列。 
- 字典,例如{‘foo’:[1, 3]} -> 將第 1、3 列解析為日期並調用結果 ‘foo’ 
 - 如果列或索引不能表示為日期時間數組,例如由於不可解析的值或時區的混合,列或索引將作為對象數據類型原樣返回。對於非標準日期時間解析,請在 - pd.read_csv之後使用- pd.to_datetime。要解析具有混合時區的索引或列,請將- date_parser指定為 partially-applied- pandas.to_datetime()和- utc=True。有關更多信息,請參閱使用混合時區解析 CSV。- 注意:iso8601 格式的日期存在fast-path。 
- infer_datetime_format:布爾值,默認為 False
- 如果 True 和 - parse_dates被啟用,pandas 將嘗試推斷列中日期時間字符串的格式,如果可以推斷,則切換到更快的解析它們的方法。在某些情況下,這可以將解析速度提高 5-10 倍。
- keep_date_col:布爾值,默認為 False
- 如果 True 和 - parse_dates指定合並多個列,則保留原始列。
- date_parser:函數,可選
- 用於將字符串列序列轉換為日期時間實例數組的函數。默認使用 - dateutil.parser.parser進行轉換。 Pandas 將嘗試以三種不同的方式調用- date_parser,如果發生異常則前進到下一種方式:1) 將一個或多個數組(由- parse_dates定義)作為參數傳遞; 2) 將- parse_dates定義的列中的字符串值連接(按行)到單個數組中並傳遞它; 3) 使用一個或多個字符串(對應於- parse_dates定義的列)作為參數為每一行調用一次- date_parser。
- dayfirst:布爾值,默認為 False
- DD/MM 格式日期,國際和歐洲格式。 
- cache_dates:布爾值,默認為真
- 如果為 True,則使用唯一的已轉換日期緩存來應用日期時間轉換。解析重複的日期字符串時可能會產生顯著的speed-up,尤其是具有時區偏移的字符串。 
- iterator:布爾值,默認為 False
- 返回 TextFileReader 對象以進行迭代或使用 - get_chunk()獲取塊。
- chunksize:整數,可選
- 返回 TextFileReader 對象進行迭代。有關 - iterator和- chunksize的更多信息,請參閱 IO 工具文檔。
- compression:str 或 dict,默認 ‘infer’
- 用於on-disk 數據的即時解壓縮。如果 ‘infer’ 和 '%s' 是 path-like,則從以下擴展名中檢測壓縮:'.gz'、'.bz2'、'.zip'、'.xz' 或 '.zst'(否則沒有壓縮)。如果使用‘zip’,ZIP 文件必須隻包含一個要讀入的數據文件。設置為 - None無需減壓。也可以是帶鍵的字典- 'method'設置為 { 之一- 'zip',- 'gzip',- 'bz2',- 'zstd'} 和其他鍵值對被轉發到- zipfile.ZipFile,- gzip.GzipFile,- bz2.BZ2File, 或者- zstandard.ZstdDecompressor, 分別。例如,可以使用自定義壓縮字典為 Zstandard 解壓縮傳遞以下內容:- compression={'method':'zstd', 'dict_data':my_compression_dict}.
- thousands:str,可選
- 千位分隔符。 
- decimal:str,默認“。”
- 識別為小數點的字符(例如,對歐洲數據使用“,”)。 
- lineterminator:str(長度 1),可選
- 將文件分成幾行的字符。僅對 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 並且quoting 不是 - QUOTE_NONE時,指示是否將字段內的兩個連續quotechar 元素解釋為單個- quotechar元素。
- escapechar:str(長度 1),可選
- One-character 用於轉義其他字符的字符串。 
- comment:str,可選
- 指示不應解析行的其餘部分。如果在一行的開頭找到,則該行將被完全忽略。此參數必須是單個字符。與空行一樣(隻要 - skip_blank_lines=True),參數- header會忽略完全注釋的行,但- skiprows不會。例如,如果- comment='#',用- header=0解析- #empty\na,b,c\n1,2,3將導致“a,b,c”被視為標頭。
- encoding:str,可選
- 讀取/寫入時用於 UTF 的編碼(例如“utf-8”)。 Python 標準編碼列表。 
- encoding_errors:str,可選,默認 “strict”
- 如何處理編碼錯誤。可能值列表。 
- dialect:str 或 csv.Dialect,可選
- 如果提供,此參數將覆蓋以下參數的值(默認與否): - delimiter、- doublequote、- escapechar、- skipinitialspace、- quotechar和- quoting。如果需要覆蓋值,將發出 ParserWarning。有關更多詳細信息,請參閱 csv.Dialect 文檔。
- error_bad_lines:布爾,可選,默認 None
- 默認情況下,字段過多的行(例如,逗號過多的 csv 行)會引發異常,並且不會返回任何 DataFrame。如果為 False,那麽這些 “bad lines” 將從返回的 DataFrame 中刪除。 
- warn_bad_lines:布爾,可選,默認 None
- 如果 error_bad_lines 為 False,並且 warn_bad_lines 為 True,則將輸出每個 “bad line” 的警告。 
- on_bad_lines:{‘error’, ‘warn’, ‘skip’} 或可調用,默認 ‘error’
- 指定遇到錯誤行(包含太多字段的行)時要執行的操作。允許的值為: - ‘error’, raise an Exception when a bad line is encountered. 
- ‘warn’, raise a warning when a bad line is encountered and skip that line. 
- ‘skip’, skip bad lines without raising or warning when they are encountered. 
 
- delim_whitespace:布爾值,默認為 False
- 指定是否將空格(例如 - ' '或- ' ')用作 sep。相當於設置- sep='\s+'。如果此選項設置為 True,則不應為- delimiter參數傳遞任何內容。
- low_memory:布爾值,默認為真
- 在內部以塊的形式處理文件,從而在解析時減少內存使用,但可能是混合類型推斷。要確保沒有混合類型,請設置 False,或使用 - dtype參數指定類型。請注意,無論如何,整個文件都被讀入單個 DataFrame,請使用- chunksize或- iterator參數以塊的形式返回數據。 (僅對 C 解析器有效)。
- memory_map:布爾值,默認為 False
- 如果為 - filepath_or_buffer提供了文件路徑,則將文件對象直接映射到內存並直接從那裏訪問數據。使用此選項可以提高性能,因為不再有任何 I/O 開銷。
- float_precision:str,可選
- 指定 C 引擎應對浮點值使用的轉換器。普通轉換器的選項是 - None或‘high’,原始低精度 Pandas 轉換器的選項是‘legacy’,round-trip 轉換器的選項是‘round_trip’。
- storage_options:字典,可選
- 對特定存儲連接有意義的額外選項,例如主機、端口、用戶名、密碼等。對於 HTTP(S) URL,鍵值對作為標頭選項轉發到 - urllib。對於其他 URL(例如以 “s3://” 和 “gcs://” 開頭),鍵值對被轉發到- fsspec。有關詳細信息,請參閱- fsspec和- urllib。
 
- DataFrame 或 TextParser
- 逗號分隔值 (csv) 文件作為帶有標簽軸的二維數據結構返回。 
 
 - 參數:- 返回:- 例子:- >>> pd.read_csv('data.csv')
相關用法
- Python pandas.read_pickle用法及代碼示例
- Python pandas.read_hdf用法及代碼示例
- Python pandas.read_xml用法及代碼示例
- Python pandas.read_table用法及代碼示例
- Python pandas.read_sql_table用法及代碼示例
- Python pandas.read_excel用法及代碼示例
- Python pandas.read_fwf用法及代碼示例
- Python pandas.read_stata用法及代碼示例
- Python pandas.read_sql用法及代碼示例
- Python pandas.read_html用法及代碼示例
- Python pandas.read_json用法及代碼示例
- Python pandas.arrays.IntervalArray.is_empty用法及代碼示例
- Python pandas.DataFrame.ewm用法及代碼示例
- Python pandas.api.types.is_timedelta64_ns_dtype用法及代碼示例
- Python pandas.DataFrame.dot用法及代碼示例
- Python pandas.DataFrame.apply用法及代碼示例
- Python pandas.DataFrame.combine_first用法及代碼示例
- Python pandas.Index.value_counts用法及代碼示例
- Python pandas.DatetimeTZDtype用法及代碼示例
- Python pandas.DataFrame.cumsum用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.read_csv。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
