pyarrow.csv.ParseOptions#

class pyarrow.csv.ParseOptions(delimiter=None, *, quote_char=None, double_quote=None, escape_char=None, newlines_in_values=None, ignore_empty_lines=None, invalid_row_handler=None)#

Bases: _Weakrefable

用於解析 CSV 檔案的選項。

引數:
delimiter1-character str, optional (default ‘,’)

CSV 資料中用於分隔各個單元格的字元。

quote_char1-character str or False, optional (default ‘”’)

用於可選地引用 CSV 值的字元(如果禁止引用則為 False)。

double_quotebool, optional (default True)

帶引號的 CSV 值中兩個引號是否表示資料中的一個引號。

escape_char1-character str or False, optional (default False)

用於可選地轉義特殊字元的字元(如果禁止轉義則為 False)。

newlines_in_valuesbool, optional (default False)

CSV 值中是否允許換行符。將其設定為 True 會降低多執行緒 CSV 讀取的效能。

ignore_empty_linesbool, optional (default True)

CSV 輸入中是否忽略空行。如果為 False,空行將被解釋為包含單個空值(假設為單列 CSV 檔案)。

invalid_row_handlercallable(), optional (default None)

如果不是 None,則此物件將針對每個解析失敗(由於列數不匹配)的 CSV 行呼叫。它應接受一個 InvalidRow 引數並返回“skip”或“error”,具體取決於期望的結果。

示例

從位元組物件定義一個示例檔案

>>> import io
>>> s = (
...     "animals;n_legs;entry\n"
...     "Flamingo;2;2022-03-01\n"
...     "# Comment here:\n"
...     "Horse;4;2022-03-02\n"
...     "Brittle stars;5;2022-03-03\n"
...     "Centipede;100;2022-03-04"
... )
>>> print(s)
animals;n_legs;entry
Flamingo;2;2022-03-01
# Comment here:
Horse;4;2022-03-02
Brittle stars;5;2022-03-03
Centipede;100;2022-03-04
>>> source = io.BytesIO(s.encode())

從檔案讀取資料,跳過帶有註釋的行並定義分隔符

>>> from pyarrow import csv
>>> def skip_comment(row):
...     if row.text.startswith("# "):
...         return 'skip'
...     else:
...         return 'error'
...
>>> parse_options = csv.ParseOptions(delimiter=";", invalid_row_handler=skip_comment)
>>> csv.read_csv(source, parse_options=parse_options)
pyarrow.Table
animals: string
n_legs: int64
entry: date32[day]
----
animals: [["Flamingo","Horse","Brittle stars","Centipede"]]
n_legs: [[2,4,5,100]]
entry: [[2022-03-01,2022-03-02,2022-03-03,2022-03-04]]
__init__(*args, **kwargs)#

方法

__init__(*args, **kwargs)

equals(self, ParseOptions other)

validate(self)

屬性

delimiter

CSV 資料中用於分隔各個單元格的字元。

double_quote

帶引號的 CSV 值中兩個引號是否表示資料中的一個引號。

escape_char

用於可選地轉義特殊字元的字元(如果禁止轉義則為 False)。

ignore_empty_lines

CSV 輸入中是否忽略空行。

invalid_row_handler

用於無效行的可選處理程式。

newlines_in_values

CSV 值中是否允許換行符。

quote_char

用於可選地引用 CSV 值的字元(如果禁止引用則為 False)。

delimiter#

CSV 資料中用於分隔各個單元格的字元。

double_quote#

帶引號的 CSV 值中兩個引號是否表示資料中的一個引號。

equals(self, ParseOptions other)#
引數:
otherpyarrow.csv.ParseOptions
返回:
bool
escape_char#

用於可選地轉義特殊字元的字元(如果禁止轉義則為 False)。

ignore_empty_lines#

CSV 輸入中是否忽略空行。如果為 False,空行將被解釋為包含單個空值(假設為單列 CSV 檔案)。

invalid_row_handler#

用於無效行的可選處理程式。

如果不是 None,則此物件將針對每個解析失敗(由於列數不匹配)的 CSV 行呼叫。它應接受一個 InvalidRow 引數並返回“skip”或“error”,具體取決於期望的結果。

newlines_in_values#

CSV 值中是否允許換行符。將其設定為 True 會降低多執行緒 CSV 讀取的效能。

quote_char#

用於可選地引用 CSV 值的字元(如果禁止引用則為 False)。

validate(self)#