Datasets 文件

表類

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

表類

每個 Dataset 物件都由一個 PyArrow 表支援。表可以從磁碟(記憶體對映)或記憶體中載入。有幾種表型別可用,它們都繼承自 table.Table

Table

class datasets.table.Table

< >

( table: Table )

透過組合方式包裝一個 pyarrow 表。這是 InMemoryTableMemoryMappedTableConcatenationTable 的基類。

它實現了 pyarrow 表類的所有基本屬性/方法,但表的轉換方法除外:slice、filter、flatten、combine_chunks、cast、add_column、append_column、remove_column、set_column、rename_columnsdrop

這些方法的實現在子類中有所不同。

validate

< >

( *args **kwargs )

引數

  • full (bool,預設為 False) — 如果為 True,執行開銷大的檢查,否則僅執行開銷小的檢查。

引發

pa.lib.ArrowInvalid

  • pa.lib.ArrowInvalid — 如果驗證失敗

執行驗證檢查。如果驗證失敗,則會引發異常。

預設情況下,只執行開銷小的驗證檢查。傳入 full=True 進行徹底的驗證檢查(可能為 O(n))。

equals

< >

( *args **kwargs ) bool

引數

  • other (Table) — 用於比較的表。
  • check_metadata bool,預設為 False) — 是否也檢查模式元資料的相等性。

返回

布林值

檢查兩個表的內容是否相等。

to_batches

< >

( *args **kwargs )

引數

  • max_chunksize (int,預設為 None) — RecordBatch 塊的最大大小。單個塊的大小可能更小,具體取決於單個列的塊佈局。

將錶轉換為(連續的)RecordBatch 物件列表。

to_pydict

< >

( *args **kwargs ) dict

返回

字典

將錶轉換為 dictOrderedDict

to_pandas

< >

( *args **kwargs ) pandas.Seriespandas.DataFrame

引數

  • memory_pool (MemoryPool,預設為 None) — 用於分配記憶體的 Arrow MemoryPool。如果未傳遞,則使用預設的記憶體池。
  • strings_to_categorical (bool,預設為 False) — 將字串(UTF8)和二進位制型別編碼為 pandas.Categorical
  • categories (list,預設為 空列表) — 應作為 pandas.Categorical 返回的欄位列表。僅適用於類表資料結構。
  • zero_copy_only (bool,預設為 False) — 如果此函式呼叫需要複製底層資料,則引發 ArrowException
  • integer_object_nulls (bool,預設為 False) — 將帶空值的整數轉換為物件。
  • date_as_object (bool,預設為 True) — 將日期轉換為物件。如果為 False,則轉換為 datetime64[ns] 型別。
  • timestamp_as_object (bool,預設為 False) — 將非納秒時間戳 (np.datetime64) 轉換為物件。如果您有不適合納秒時間戳正常日期範圍(公元 1678 年 - 公元 2262 年)的時間戳,這會很有用。如果為 False,則所有時間戳都將轉換為 datetime64[ns] 型別。
  • use_threads (bool,預設為 True) — 是否使用多執行緒並行化轉換。
  • deduplicate_objects (bool,預設為 False) — 建立時不要建立 Python 物件的多個副本,以節省記憶體使用。轉換速度會變慢。
  • ignore_metadata (bool,預設為 False) — 如果為 True,不使用 ‘pandas’ 元資料來重建 DataFrame 索引(如果存在)。
  • safe (bool,預設為 True) — 對於某些資料型別,需要進行型別轉換才能將資料儲存在 pandas DataFrame 或 Series 中(例如,時間戳在 pandas 中總是儲存為納秒)。此選項控制它是否是安全轉換。
  • split_blocks (bool,預設為 False) — 如果為 True,在從 RecordBatchTable 建立 pandas.DataFrame 時,為每列生成一個內部“塊”。雖然這可以暫時減少記憶體,但請注意,各種 pandas 操作可能會觸發“合併”,這可能會導致記憶體使用量激增。
  • self_destruct (bool,預設為 False) — 實驗性功能:如果為 True,在將 Arrow 物件轉換為 pandas 時嘗試釋放原始 Arrow 記憶體。如果您在使用此選項呼叫 to_pandas 後再使用該物件,將會導致程式崩潰。
  • types_mapper (function,預設為 None) — 一個將 pyarrow DataType 對映到 pandas ExtensionDtype 的函式。這可用於覆蓋內建 pyarrow 型別的預設 pandas 型別轉換,或在表模式中缺少 pandas_metadata 時使用。該函式接收一個 pyarrow DataType,並期望返回一個 pandas ExtensionDtype,或者如果該型別應使用預設轉換,則返回 None。如果您有一個字典對映,可以傳遞 dict.get 作為函式。

返回

pandas.Seriespandas.DataFrame

pandas.Seriespandas.DataFrame,取決於物件型別。

酌情轉換為與 pandas 相容的 NumPy 陣列或 DataFrame。

to_string

< >

( *args **kwargs )

field

< >

( *args **kwargs )

引數

  • i (Union[int, str]) — 要檢索的欄位的索引或名稱。

透過列名或數字索引選擇一個模式欄位。

column

< >

( *args **kwargs )

引數

  • i (Union[int, str]) — 要檢索的列的索引或名稱。

透過列名或數字索引選擇一列。

itercolumns

< >

( *args **kwargs )

按數值順序迭代所有列的迭代器。

schema

< >

( )

表及其列的模式。

columns

< >

( )

按數值順序排列的所有列的列表。

num_columns

< >

( )

此表中的列數。

num_rows

< >

( )

此表中的行數。

根據表的定義,所有列具有相同的行數。

shape

< >

( ) (int, int)

返回

(int, int)

行數和列數。

表的維度:(#行數, #列數)。

nbytes

< >

( )

表元素所消耗的總位元組數。

InMemoryTable

class datasets.table.InMemoryTable

< >

( table: Table )

當表被載入到使用者的 RAM 中時,該表被稱為記憶體中的表。

對其進行 Pickling 操作會使用記憶體複製所有資料。它的實現很簡單,直接使用底層的 pyarrow 表方法。

這與 MemoryMapped 表不同,對於後者,Pickling 不會將所有資料複製到記憶體中。對於 MemoryMapped,unpickling 操作會從磁碟重新載入表。

當資料適合記憶體時,必須使用 InMemoryTable,而 MemoryMapped 則保留用於比記憶體更大的資料,或者當您希望應用程式的記憶體佔用保持較低時。

validate

< >

( *args **kwargs )

引數

  • full (bool,預設為 False) — 如果為 True,執行開銷大的檢查,否則僅執行開銷小的檢查。

引發

pa.lib.ArrowInvalid

  • pa.lib.ArrowInvalid — 如果驗證失敗

執行驗證檢查。如果驗證失敗,則會引發異常。

預設情況下,只執行開銷小的驗證檢查。傳入 full=True 進行徹底的驗證檢查(可能為 O(n))。

equals

< >

( *args **kwargs ) bool

引數

  • other (Table) — 用於比較的表。
  • check_metadata (bool, 預設為 False) — 是否也檢查 schema 元資料是否相等。

返回

布林值

檢查兩個表的內容是否相等。

to_batches

< >

( *args **kwargs )

引數

  • max_chunksize (int, 預設為 None) — RecordBatch 塊的最大尺寸。根據各個列的塊佈局,單個塊可能會更小。

將錶轉換為(連續的)RecordBatch 物件列表。

to_pydict

< >

( *args **kwargs ) dict

返回

字典

將錶轉換為 dictOrderedDict

to_pandas

< >

( *args **kwargs ) pandas.Seriespandas.DataFrame

引數

  • memory_pool (MemoryPool, 預設為 None) — 用於分配記憶體的 Arrow MemoryPool。如果未傳遞,則使用預設記憶體池。
  • strings_to_categorical (bool, 預設為 False) — 將字串(UTF8)和二進位制型別編碼為 pandas.Categorical
  • categories (list, 預設為 空列表) — 應作為 pandas.Categorical 返回的欄位列表。僅適用於類似表的資料結構。
  • zero_copy_only (bool, 預設為 False) — 如果此函式呼叫需要複製底層資料,則引發 ArrowException
  • integer_object_nulls (bool, 預設為 False) — 將帶空值的整數轉換為物件。
  • date_as_object (bool, 預設為 True) — 將日期轉換為物件。如果為 False,則轉換為 datetime64[ns] dtype。
  • timestamp_as_object (bool, 預設為 False) — 將非納秒級的時間戳(np.datetime64)轉換為物件。這對於處理不適合納秒級時間戳正常日期範圍(公元 1678 年至 2262 年)的時間戳非常有用。如果為 False,所有時間戳都將轉換為 datetime64[ns] dtype。
  • use_threads (bool, 預設為 True) — 是否使用多執行緒並行化轉換。
  • deduplicate_objects (bool, 預設為 False) — 建立時不要為 Python 物件建立多個副本,以節省記憶體使用。轉換速度會變慢。
  • ignore_metadata (bool, 預設為 False) — 如果為 True,則不使用 'pandas' 元資料來重建 DataFrame 索引(如果存在)。
  • safe (bool, 預設為 True) — 對於某些資料型別,需要進行轉換才能將其儲存在 pandas DataFrame 或 Series 中(例如,時間戳在 pandas 中總是以納秒為單位儲存)。此選項控制這是否為安全轉換。
  • split_blocks (bool, 預設為 False) — 如果為 True,在從 RecordBatchTable 建立 pandas.DataFrame 時,為每列生成一個內部“塊”。雖然這可以暫時減少記憶體使用,但請注意,各種 pandas 操作可能會觸發“合併”,從而可能導致記憶體使用量激增。
  • self_destruct (bool, 預設為 False) — 實驗性功能:如果為 True,在將 Arrow 物件轉換為 pandas 時,嘗試釋放原始 Arrow 記憶體。如果在使用此選項呼叫 to_pandas 後再使用該物件,程式將會崩潰。
  • types_mapper (function, 預設為 None) — 一個將 pyarrow DataType 對映到 pandas ExtensionDtype 的函式。這可以用於覆蓋內建 pyarrow 型別的預設 pandas 型別轉換,或者在表 schema 中缺少 pandas_metadata 時使用。該函式接收一個 pyarrow DataType,並應返回一個 pandas ExtensionDtype,如果該型別應使用預設轉換,則返回 None。如果你有一個對映字典,可以將 dict.get 作為函式傳遞。

返回

pandas.Seriespandas.DataFrame

pandas.Seriespandas.DataFrame,取決於物件型別。

酌情轉換為與 pandas 相容的 NumPy 陣列或 DataFrame。

to_string

< >

( *args **kwargs )

field

< >

( *args **kwargs )

引數

  • i (Union[int, str]) — 要檢索的欄位的索引或名稱。

透過列名或數字索引選擇一個模式欄位。

column

< >

( *args **kwargs )

引數

  • i (Union[int, str]) — 要檢索的列的索引或名稱。

透過列名或數字索引選擇一列。

itercolumns

< >

( *args **kwargs )

按數值順序迭代所有列的迭代器。

schema

< >

( )

表及其列的模式。

columns

< >

( )

按數值順序排列的所有列的列表。

num_columns

< >

( )

此表中的列數。

num_rows

< >

( )

此表中的行數。

根據表的定義,所有列具有相同的行數。

shape

< >

( ) (int, int)

返回

(int, int)

行數和列數。

表的維度:(#行數, #列數)。

nbytes

< >

( )

表元素所消耗的總位元組數。

column_names

< >

( )

表的列名。

slice

< >

( offset = 0 length = None )

引數

  • offset (int, 預設為 0) — 從表開頭切片的偏移量。
  • length (int, 預設為 None) — 切片的長度(預設為從偏移量開始直到表尾)。

計算此表的零複製切片。

過濾器

< >

( *args **kwargs )

從表中選擇記錄。有關完整用法,請參閱 pyarrow.compute.filter

flatten

< >

( *args **kwargs )

引數

  • memory_pool (MemoryPool, 預設為 None) — 用於記憶體分配(如果需要),否則使用預設池。

展平此表。每個具有結構體型別的列都被展平為每個結構體欄位一列。其他列保持不變。

combine_chunks

< >

( *args **kwargs )

引數

  • memory_pool (MemoryPool, 預設為 None) — 用於記憶體分配(如果需要),否則使用預設池。

透過組合此表所擁有的塊來建立一個新表。

每列 ChunkedArray 中的所有底層塊都被連線成零個或一個塊。

cast

< >

( *args **kwargs )

引數

  • target_schema (Schema) — 要轉換到的 schema,欄位的名稱和順序必須匹配。
  • safe (bool, 預設為 True) — 檢查溢位或其他不安全的轉換。

將表值轉換為另一個 schema。

replace_schema_metadata

< >

( *args **kwargs ) datasets.table.Table

引數

  • metadata (dict, 預設為 None) —

返回

datasets.table.Table

shallow_copy

實驗性功能:透過將 schema 鍵值元資料替換為指定的新元資料(可以是 None,表示刪除任何現有元資料),建立表的淺複製。

add_column

< >

( *args **kwargs ) datasets.table.Table

引數

  • i (int) — 放置列的索引。
  • field_ (Union[str, pyarrow.Field]) — 如果傳遞的是字串,則型別將從列資料中推斷。
  • column (Union[pyarrow.Array, List[pyarrow.Array]]) — 列資料。

返回

datasets.table.Table

添加了傳入列的新表。

在指定位置向表中新增一列。

返回一個添加了列的新表,原始表物件保持不變。

append_column

< >

( *args **kwargs ) datasets.table.Table

引數

  • field_ (Union[str, pyarrow.Field]) — 如果傳遞的是字串,則型別將從列資料中推斷。
  • column (Union[pyarrow.Array, List[pyarrow.Array]]) — 列資料。

返回

datasets.table.Table

添加了傳入列的新表。

在列的末尾追加列。

remove_column

< >

( *args **kwargs ) datasets.table.Table

引數

  • i (int) — 要移除的列的索引。

返回

datasets.table.Table

不包含該列的新表。

建立一個移除了指定列的新表。

set_column

< >

( *args **kwargs ) datasets.table.Table

引數

  • i (int) — 放置列的索引。
  • field_ (Union[str, pyarrow.Field]) — 如果傳遞的是字串,則型別會從列資料中推斷出來。
  • column (Union[pyarrow.Array, List[pyarrow.Array]]) — 列資料。

返回

datasets.table.Table

設定了傳遞的列的新表。

替換表中指定位置的列。

rename_columns

< >

( *args **kwargs )

建立一個新表,其列已重新命名為提供的名稱。

選擇

< >

( *args **kwargs ) datasets.table.Table

引數

  • columns (Union[List[str], List[int]]) — 要選擇的列名或整數索引。

返回

datasets.table.Table

包含指定列的新表,並保留元資料。

選擇表的列。

返回一個包含指定列的新表,並保留元資料。

drop

< >

( *args **kwargs ) datasets.table.Table

引數

  • columns (List[str]) — 引用現有列的欄位名稱列表。

返回

datasets.table.Table

不包含這些列的新表。

引發

KeyError

  • KeyError — :如果傳遞的任何列名不存在。

刪除一個或多個列並返回一個新表。

from_file

< >

( filename: str )

from_buffer

< >

( buffer: Buffer )

from_pandas

< >

( *args **kwargs ) datasets.table.Table

引數

  • df (pandas.DataFrame) —
  • schema (pyarrow.Schema, 可選) — Arrow 表的預期模式。如果無法自動推斷列的型別,可以使用此引數來指定。如果傳遞了此引數,輸出將嚴格遵循此模式。在模式中指定但在 DataFrame 列或其索引中找不到的列將引發錯誤。DataFrame 中未在模式中指定的額外列或索引級別將被忽略。
  • preserve_index (bool, 可選) — 是否將索引作為結果 Table 中的附加列儲存。預設值 `None` 會將索引儲存為一列,但 RangeIndex 除外,它僅作為元資料儲存。使用 `preserve_index=True` 強制將其儲存為一列。
  • nthreads (int, 預設為 None (最多可使用系統 CPU 核心數)) — 如果大於 1,則使用指定數量的執行緒並行轉換列為 Arrow 格式。
  • columns (List[str], 可選) — 要轉換的列列表。如果為 None,則使用所有列。
  • safe (bool, 預設為 True) — 檢查溢位或其他不安全的轉換。

返回

datasets.table.Table

將 pandas.DataFrame 轉換為 Arrow 表。

生成的 Arrow 表中的列型別是根據 DataFrame 中 pandas.Series 的 dtypes 推斷的。對於非物件 Series,NumPy dtype 會被轉換為其等效的 Arrow 型別。對於 `object` 型別的 Series,我們需要透過檢視該 Series 中的 Python 物件來猜測資料型別。

請注意,`object` 型別的 Series 不攜帶足夠的資訊來總是能得到有意義的 Arrow 型別。在我們無法推斷型別的情況下,例如因為 DataFrame 的長度為 0 或 Series 只包含 `None/nan` 物件,型別將被設定為 null。可以透過構造一個顯式模式並將其傳遞給此函式來避免這種行為。

示例

>>> import pandas as pd
>>> import pyarrow as pa
>>> df = pd.DataFrame({
    ...     'int': [1, 2],
    ...     'str': ['a', 'b']
    ... })
>>> pa.Table.from_pandas(df)
<pyarrow.lib.Table object at 0x7f05d1fb1b40>

from_arrays

< >

( *args **kwargs )

引數

  • arrays (List[Union[pyarrow.Array, pyarrow.ChunkedArray]]) — 構成表的等長陣列。
  • names (List[str], 可選) — 表列的名稱。如果未傳遞,則必須傳遞 schema。
  • schema (Schema, 預設為 None) — 所建立表的模式。如果未傳遞,則必須傳遞 names。
  • metadata (Union[dict, Mapping], 預設為 None) — 模式的可選元資料(如果推斷得出)。

從 Arrow 陣列構造一個表。

from_pydict

< >

( *args **kwargs )

引數

  • mapping (Union[dict, Mapping]) — 從字串到陣列或 Python 列表的對映。
  • schema (Schema, 預設為 None) — 如果未傳遞,將從對映值中推斷。
  • metadata (Union[dict, Mapping], 預設為 None) — 模式的可選元資料(如果推斷得出)。

從 Arrow 陣列或列構造一個表。

from_batches

< >

( *args **kwargs ) datasets.table.Table

引數

  • batches (Union[Sequence[pyarrow.RecordBatch], Iterator[pyarrow.RecordBatch]]) — 要轉換的 RecordBatch 序列,所有模式必須相等。
  • schema (Schema, 預設為 None) — 如果未傳遞,將從第一個 RecordBatch 中推斷。

返回

datasets.table.Table

從 Arrow RecordBatches 的序列或迭代器構造一個表。

MemoryMappedTable

class datasets.table.MemoryMappedTable

< >

( table: Table path: str replays: typing.Optional[list[tuple[str, tuple, dict]]] = None )

當表不使用使用者的 RAM,而是從磁碟載入資料時,該表被稱為記憶體對映表。

對其進行序列化(Pickling)不會將資料複製到記憶體中。相反,只會序列化記憶體對映 Arrow 檔案的路徑,以及從磁碟重新載入表時需要“重放”的轉換列表。

其實現要求儲存應用於底層 pyarrow 表的所有轉換的歷史記錄,以便在從磁碟重新載入表時可以“重放”這些轉換。

這與 InMemoryTable 表不同,對於後者,序列化會複製所有資料到記憶體中。

當資料適合記憶體時,必須使用 InMemoryTable,而 MemoryMapped 則保留用於比記憶體更大的資料,或者當您希望應用程式的記憶體佔用保持較低時。

validate

< >

( *args **kwargs )

引數

  • full (bool, 預設為 False) — 如果為 True,則執行昂貴的檢查,否則僅執行廉價的檢查。

引發

pa.lib.ArrowInvalid

  • pa.lib.ArrowInvalid — 如果驗證失敗

執行驗證檢查。如果驗證失敗,則會引發異常。

預設情況下,只執行開銷小的驗證檢查。傳入 full=True 進行徹底的驗證檢查(可能為 O(n))。

equals

< >

( *args **kwargs ) bool

引數

  • other (Table) — 要比較的表。
  • check_metadata bool, 預設為 False) — 是否也檢查模式元資料的相等性。

返回

布林值

檢查兩個表的內容是否相等。

to_batches

< >

( *args **kwargs )

引數

  • max_chunksize (int, 預設為 None) — RecordBatch 塊的最大大小。單個塊的大小可能會更小,具體取決於各個列的塊佈局。

將錶轉換為(連續的)RecordBatch 物件列表。

to_pydict

< >

( *args **kwargs ) dict

返回

字典

將錶轉換為 dictOrderedDict

to_pandas

< >

( *args **kwargs ) pandas.Seriespandas.DataFrame

引數

  • memory_pool (MemoryPool, 預設為 None) — 用於分配的 Arrow 記憶體池。如果未傳遞,則使用預設記憶體池。
  • strings_to_categorical (bool, 預設為 False) — 將字串(UTF8)和二進位制型別編碼為 pandas.Categorical
  • categories (list, 預設為 空列表) — 應返回為 pandas.Categorical 的欄位列表。僅適用於類似表的資料結構。
  • zero_copy_only (bool, 預設為 False) — 如果此函式呼叫需要複製底層資料,則引發 ArrowException
  • integer_object_nulls (bool, 預設為 False) — 將帶空值的整數轉換為物件。
  • date_as_object (bool, 預設為 True) — 將日期轉換為物件。如果為 False,則轉換為 datetime64[ns] dtype。
  • timestamp_as_object (bool, 預設為 False) — 將非納秒級時間戳(np.datetime64)轉換為物件。如果您的時間戳不適合納秒級時間戳的正常日期範圍(公元 1678 年 - 公元 2262 年),這很有用。如果為 False,所有時間戳都將轉換為 datetime64[ns] dtype。
  • use_threads (bool, 預設為 True) — 是否使用多個執行緒並行化轉換。
  • deduplicate_objects (bool, 預設為 False) — 建立 Python 物件時不建立多個副本,以節省記憶體使用。轉換速度會變慢。
  • ignore_metadata (bool, 預設為 False) — 如果為 True,則不使用 'pandas' 元資料來重建 DataFrame 索引(如果存在)。
  • safe (bool, 預設為 True) — 對於某些資料型別,需要進行轉換才能將資料儲存在 pandas DataFrame 或 Series 中(例如,時間戳在 pandas 中總是儲存為納秒)。此選項控制這是否是安全的轉換。
  • split_blocks (bool, 預設為 False) — 如果為 True,在從 RecordBatchTable 建立 pandas.DataFrame 時,為每列生成一個內部“塊”。雖然這可以暫時減少記憶體,但請注意,各種 pandas 操作可能會觸發“合併”,從而可能導致記憶體使用量激增。
  • self_destruct (bool, 預設為 False) — 實驗性功能:如果為 True,在將 Arrow 物件轉換為 pandas 時,嘗試釋放原始 Arrow 記憶體。如果您在使用此選項呼叫 to_pandas 後再使用該物件,程式將會崩潰。
  • types_mapper (function, 預設為 None) — 一個將 pyarrow DataType 對映到 pandas ExtensionDtype 的函式。這可用於覆蓋內建 pyarrow 型別轉換的預設 pandas 型別,或者在表模式中缺少 pandas_metadata 時使用。該函式接收一個 pyarrow DataType,並應返回一個 pandas ExtensionDtype,或者如果該型別應使用預設轉換,則返回 None。如果您有一個字典對映,可以傳遞 dict.get 作為函式。

返回

pandas.Seriespandas.DataFrame

pandas.Seriespandas.DataFrame,取決於物件型別。

酌情轉換為與 pandas 相容的 NumPy 陣列或 DataFrame。

to_string

< >

( *args **kwargs )

field

< >

( *args **kwargs )

引數

  • i (Union[int, str]) — 要檢索的欄位的索引或名稱。

透過列名或數字索引選擇一個模式欄位。

column

< >

( *args **kwargs )

引數

  • i (Union[int, str]) — 要檢索的列的索引或名稱。

透過列名或數字索引選擇一列。

itercolumns

< >

( *args **kwargs )

按數值順序迭代所有列的迭代器。

schema

< >

( )

表及其列的模式。

columns

< >

( )

按數值順序排列的所有列的列表。

num_columns

< >

( )

此表中的列數。

num_rows

< >

( )

此表中的行數。

根據表的定義,所有列具有相同的行數。

shape

< >

( ) (int, int)

返回

(int, int)

行數和列數。

表的維度:(#行數, #列數)。

nbytes

< >

( )

表元素所消耗的總位元組數。

column_names

< >

( )

表的列名。

slice

< >

( offset = 0 length = None )

引數

  • offset (int, 預設為 0) — 從表頭開始切片的偏移量。
  • length (int, 預設為 None) — 切片長度 (預設從偏移量開始直到表尾)。

計算此表的零複製切片。

過濾器

< >

( *args **kwargs )

從表中選擇記錄。有關完整用法,請參閱 pyarrow.compute.filter

flatten

< >

( *args **kwargs )

引數

  • memory_pool (MemoryPool, 預設為 None) — 用於記憶體分配,如果需要,否則使用預設池。

展平此表。每個具有結構體型別的列都被展平為每個結構體欄位一列。其他列保持不變。

combine_chunks

< >

( *args **kwargs )

引數

  • memory_pool (MemoryPool, 預設為 None) — 用於記憶體分配,如果需要,否則使用預設池。

透過組合此表所擁有的塊來建立一個新表。

每列的ChunkedArray中所有底層的塊被連線成零個或一個塊。

cast

< >

( *args **kwargs )

引數

  • target_schema (Schema) — 要轉換的目標模式,欄位的名稱和順序必須匹配。
  • safe (bool, 預設為 True) — 檢查溢位或其他不安全的轉換。

將表值轉換為另一個模式

replace_schema_metadata

< >

( *args **kwargs ) datasets.table.Table

引數

  • metadata (dict, 預設為 None) —

返回

datasets.table.Table

shallow_copy

實驗性功能:透過用指定的新元資料替換模式鍵值元資料來建立表的淺複製(新元資料可以為 None,這將刪除任何現有的元資料)。

add_column

< >

( *args **kwargs ) datasets.table.Table

引數

  • i (int) — 放置列的索引。
  • field_ (Union[str, pyarrow.Field]) — 如果傳入字串,則型別從列資料中推斷。
  • column (Union[pyarrow.Array, List[pyarrow.Array]]) — 列資料。

返回

datasets.table.Table

添加了傳入列的新表。

在指定位置向表中新增一列。

返回一個添加了列的新表,原始表物件保持不變。

append_column

< >

( *args **kwargs ) datasets.table.Table

引數

  • field_ (Union[str, pyarrow.Field]) — 如果傳入字串,則型別從列資料中推斷。
  • column (Union[pyarrow.Array, List[pyarrow.Array]]) — 列資料。

返回

datasets.table.Table

添加了傳入列的新表。

在列的末尾追加列。

remove_column

< >

( *args **kwargs ) datasets.table.Table

引數

  • i (int) — 要刪除的列的索引。

返回

datasets.table.Table

不包含該列的新表。

建立一個移除了指定列的新表。

set_column

< >

( *args **kwargs ) datasets.table.Table

引數

  • i (int) — 放置列的索引。
  • field_ (Union[str, pyarrow.Field]) — 如果傳入字串,則型別從列資料中推斷。
  • column (Union[pyarrow.Array, List[pyarrow.Array]]) — 列資料。

返回

datasets.table.Table

設定了傳遞的列的新表。

替換表中指定位置的列。

rename_columns

< >

( *args **kwargs )

建立一個新表,其列已重新命名為提供的名稱。

選擇

< >

( *args **kwargs ) datasets.table.Table

引數

  • columns (Union[List[str], List[int]]) — 要選擇的列名或整數索引。

返回

datasets.table.Table

包含指定列的新表,並保留元資料。

選擇表的列。

返回一個包含指定列的新表,並保留元資料。

drop

< >

( *args **kwargs ) datasets.table.Table

引數

  • columns (List[str]) — 引用現有列的欄位名稱列表。

返回

datasets.table.Table

不包含這些列的新表。

引發

KeyError

  • KeyError — :如果傳遞的任何列名不存在。

刪除一個或多個列並返回一個新表。

from_file

< >

( filename: str replays = None )

ConcatenationTable

class datasets.table.ConcatenationTable

< >

( table: Table blocks: list )

該表由多個稱為塊的表連線而成。它支援在軸 0 (追加行) 和軸 1 (追加列) 上的連線。

底層表被稱為“塊”,可以是 `InMemoryTable` 或 `MemoryMappedTable` 物件。這允許組合來自記憶體或記憶體對映的表。當 `ConcatenationTable` 被序列化時,每個塊都會被序列化。

  • `InMemoryTable` 物件透過在記憶體中複製所有資料進行序列化。
  • MemoryMappedTable 物件在序列化時不會將資料複製到記憶體中。相反,只序列化記憶體對映箭標頭檔案的路徑,以及從磁碟重新載入表時要“重放”的轉換列表。

其實現要求分別儲存每個塊。`blocks` 屬性儲存一個塊的列表的列表。第一個軸沿軸 0 連線表(它追加行),而第二個軸沿軸 1 連線表(它追加列)。

如果在軸 0 上連線時某些列缺失,它們將被填充為 null 值。這是透過 `pyarrow.concat_tables(tables, promote=True)` 實現的。

你可以透過訪問 `ConcatenationTable.table` 屬性來訪問完全組合的表,透過訪問 `ConcatenationTable.blocks` 屬性來訪問塊。

validate

< >

( *args **kwargs )

引數

  • full (bool, 預設為 False) — 如果為 `True`,則執行昂貴的檢查,否則只執行廉價的檢查。

引發

pa.lib.ArrowInvalid

  • pa.lib.ArrowInvalid — 如果驗證失敗

執行驗證檢查。如果驗證失敗,則會引發異常。

預設情況下,只執行開銷小的驗證檢查。傳入 full=True 進行徹底的驗證檢查(可能為 O(n))。

equals

< >

( *args **kwargs ) bool

引數

  • other (Table) — 用於比較的表。
  • check_metadata bool, 預設為 False) — 是否也檢查模式元資料的相等性。

返回

布林值

檢查兩個表的內容是否相等。

to_batches

< >

( *args **kwargs )

引數

  • max_chunksize (int, 預設為 None) — `RecordBatch` 塊的最大尺寸。單個塊可能更小,具體取決於各個列的塊佈局。

將錶轉換為(連續的)RecordBatch 物件列表。

to_pydict

< >

( *args **kwargs ) dict

返回

字典

將錶轉換為 dictOrderedDict

to_pandas

< >

( *args **kwargs ) pandas.Seriespandas.DataFrame

引數

  • memory_pool (MemoryPool, 預設為 None) — 用於分配的 Arrow 記憶體池。如果未傳遞,則使用預設記憶體池。
  • strings_to_categorical (bool, 預設為 False) — 將字串(UTF8)和二進位制型別編碼為 `pandas.Categorical`。
  • categories (list, 預設為 空列表) — 應返回為 `pandas.Categorical` 的欄位列表。僅適用於類似表的資料結構。
  • zero_copy_only (bool, 預設為 False) — 如果此函式呼叫需要複製底層資料,則引發 `ArrowException`。
  • integer_object_nulls (bool, 預設為 False) — 將帶有空值的整數轉換為物件。
  • date_as_object (bool, 預設為 True) — 將日期轉換為物件。如果為 `False`,則轉換為 `datetime64[ns]` dtype。
  • timestamp_as_object (bool, 預設為 False) — 將非納秒級時間戳 (np.datetime64) 轉換為物件。如果您的時間戳不適合納秒級時間戳的正常日期範圍(公元 1678 年至公元 2262 年),此選項非常有用。如果為 False,所有時間戳都將轉換為 datetime64[ns] dtype。
  • use_threads (bool, 預設為 True) — 是否使用多執行緒並行轉換。
  • deduplicate_objects (bool, 預設為 False) — 建立 Python 物件時不建立多個副本,以節省記憶體使用。轉換速度會變慢。
  • ignore_metadata (bool, 預設為 False) — 如果為 True,則在存在 'pandas' 元資料時,不使用它來重建 DataFrame 索引。
  • safe (bool, 預設為 True) — 對於某些資料型別,需要進行型別轉換才能將其儲存在 pandas DataFrame 或 Series 中(例如,時間戳在 pandas 中總是以納秒為單位儲存)。此選項控制轉換是否為安全轉換。
  • split_blocks (bool, 預設為 False) — 如果為 True,則從 RecordBatchTable 建立 pandas.DataFrame 時,為每一列生成一個內部“塊”。雖然這可以暫時減少記憶體使用,但請注意,各種 pandas 操作可能會觸發“合併”,從而導致記憶體使用量激增。
  • self_destruct (bool, 預設為 False) — 實驗性功能:如果為 True,則在將 Arrow 物件轉換為 pandas 時,嘗試釋放原始 Arrow 記憶體。如果在使用此選項呼叫 to_pandas 後再使用該物件,程式將會崩潰。
  • types_mapper (function, 預設為 None) — 將 pyarrow DataType 對映到 pandas ExtensionDtype 的函式。此選項可用於覆蓋內建 pyarrow 型別的預設 pandas 型別轉換,或在 Table 模式中缺少 pandas_metadata 時使用。該函式接收一個 pyarrow DataType,並應返回一個 pandas ExtensionDtype,或者如果應使用該型別的預設轉換,則返回 None。如果您有字典對映,可以傳遞 dict.get 作為函式。

返回

pandas.Seriespandas.DataFrame

pandas.Seriespandas.DataFrame,取決於物件型別。

酌情轉換為與 pandas 相容的 NumPy 陣列或 DataFrame。

to_string

< >

( *args **kwargs )

field

< >

( *args **kwargs )

引數

  • i (Union[int, str]) — 要檢索的欄位的索引或名稱。

透過列名或數字索引選擇一個模式欄位。

column

< >

( *args **kwargs )

引數

  • i (Union[int, str]) — 要檢索的列的索引或名稱。

透過列名或數字索引選擇一列。

itercolumns

< >

( *args **kwargs )

按數值順序迭代所有列的迭代器。

schema

< >

( )

表及其列的模式。

columns

< >

( )

按數值順序排列的所有列的列表。

num_columns

< >

( )

此表中的列數。

num_rows

< >

( )

此表中的行數。

根據表的定義,所有列具有相同的行數。

shape

< >

( ) (int, int)

返回

(int, int)

行數和列數。

表的維度:(#行數, #列數)。

nbytes

< >

( )

表元素所消耗的總位元組數。

column_names

< >

( )

表的列名。

slice

< >

( offset = 0 length = None )

引數

  • offset (int, 預設為 0) — 從表開頭到切片的偏移量。
  • length (int, 預設為 None) — 切片的長度(預設為從偏移量開始直到表尾)。

計算此表的零複製切片。

過濾器

< >

( mask *args **kwargs )

從表中選擇記錄。有關完整用法,請參閱 pyarrow.compute.filter

flatten

< >

( *args **kwargs )

引數

  • memory_pool (MemoryPool, 預設為 None) — 用於記憶體分配(如果需要),否則使用預設池。

展平此表。每個具有結構體型別的列都被展平為每個結構體欄位一列。其他列保持不變。

combine_chunks

< >

( *args **kwargs )

引數

  • memory_pool (MemoryPool, 預設為 None) — 用於記憶體分配(如果需要),否則使用預設池。

透過組合此表所擁有的塊來建立一個新表。

每列 ChunkedArray 中的所有底層塊都被連線成零個或一個塊。

cast

< >

( target_schema *args **kwargs )

引數

  • target_schema (Schema) — 要轉換到的模式,欄位的名稱和順序必須匹配。
  • safe (bool, 預設為 True) — 檢查溢位或其他不安全的轉換。

將表值轉換為另一個 schema。

replace_schema_metadata

< >

( *args **kwargs ) datasets.table.Table

引數

  • metadata (dict, 預設為 None) —

返回

datasets.table.Table

shallow_copy

實驗性功能:透過將 schema 鍵值元資料替換為指定的新元資料(可以是 None,表示刪除任何現有元資料),建立表的淺複製。

add_column

< >

( *args **kwargs ) datasets.table.Table

引數

  • i (int) — 放置列的索引。
  • field_ (Union[str, pyarrow.Field]) — 如果傳遞的是字串,則型別從列資料中推斷。
  • column (Union[pyarrow.Array, List[pyarrow.Array]]) — 列資料。

返回

datasets.table.Table

添加了傳入列的新表。

在指定位置向表中新增一列。

返回一個添加了列的新表,原始表物件保持不變。

append_column

< >

( *args **kwargs ) datasets.table.Table

引數

  • field_ (Union[str, pyarrow.Field]) — 如果傳遞的是字串,則型別從列資料中推斷。
  • column (Union[pyarrow.Array, List[pyarrow.Array]]) — 列資料。

返回

datasets.table.Table

添加了傳入列的新表。

在列的末尾追加列。

remove_column

< >

( i *args **kwargs ) datasets.table.Table

引數

  • i (int) — 要移除的列的索引。

返回

datasets.table.Table

不包含該列的新表。

建立一個移除了指定列的新表。

set_column

< >

( *args **kwargs ) datasets.table.Table

引數

  • i (int) — 放置列的索引。
  • field_ (Union[str, pyarrow.Field]) — 如果傳遞的是字串,則型別從列資料中推斷。
  • column (Union[pyarrow.Array, List[pyarrow.Array]]) — 列資料。

返回

datasets.table.Table

設定了傳遞的列的新表。

替換表中指定位置的列。

rename_columns

< >

( names *args **kwargs )

建立一個新表,其列已重新命名為提供的名稱。

選擇

< >

( columns *args **kwargs ) datasets.table.Table

引數

  • columns (Union[List[str], List[int]]) — 要選擇的列名或整數索引。

返回

datasets.table.Table

包含指定列的新表,並保留元資料。

選擇表的列。

返回一個包含指定列的新表,並保留元資料。

drop

< >

( columns *args **kwargs ) datasets.table.Table

引數

  • columns (List[str]) — 引用現有列的欄位名稱列表。

返回

datasets.table.Table

不包含這些列的新表。

引發

KeyError

  • KeyError — :如果傳遞的任何列名不存在。

刪除一個或多個列並返回一個新表。

from_blocks

< >

( blocks: ~TableBlockContainer )

from_tables

< >

( tables: list axis: int = 0 )

引數

  • tables (Table 列表或 pyarrow.Table 列表) — 表的列表。
  • axis ({0, 1}, 預設為 0, 表示按行) — 連線的軸,其中 0 表示按行(垂直)連線,1 表示按列(水平)連線。

    1.6.0 版本中新增

從表列表中建立 ConcatenationTable

實用工具

datasets.table.concat_tables

< >

( tables: list axis: int = 0 ) datasets.table.Table

引數

  • tables (Table 列表) — 要連線的表的列表。
  • axis ({0, 1},預設為 0,表示按行連線) — 用於連線的軸,其中 0 表示按行(垂直)連線,1 表示按列(水平)連線。

    1.6.0 版本中新增

返回

datasets.table.Table

如果輸入表的數量 > 1,則返回的表是一個 datasets.table.ConcatenationTable。否則,如果只有一個表,則按原樣返回。

連線表。

datasets.table.list_table_cache_files

< >

( table: Table ) List[str]

返回

List[str]

由表載入的快取檔案的路徑列表。

獲取由表載入的快取檔案。當表的部分內容透過記憶體對映從磁碟載入時,會使用快取檔案。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.