Datasets documentation

Классы таблиц

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.8.4).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Классы таблиц

Каждый объект Dataset опирается на таблицу PyArrow. Таблицу можно загрузить с диска (с отображением в память) или непосредственно в память. Доступно несколько типов таблиц, и все они наследуются от table.Table.

Таблица

класс datasets.table.Table

< >

( table: Table )

Обёртка над таблицей pyarrow, использующая композицию. Это базовый класс для InMemoryTable, MemoryMappedTable и ConcatenationTable.

Он реализует все основные атрибуты/методы класса pyarrow Table, за исключением трансформаций таблицы: slice, filter, flatten, combine_chunks, cast, add_column, append_column, remove_column, set_column, rename_columns и drop.

Реализация этих методов различается для подклассов.

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) — Следует ли также проверять равенство метаданных схемы.

Возвращает

bool

Проверьте, равны ли содержимое двух таблиц.

to_batches

< >

( *args**kwargs )

Параметры

  • max_chunksize (int, по умолчанию None) — Максимальный размер блоков RecordBatch. Отдельные блоки могут быть меньше в зависимости от структуры блоков отдельных столбцов.

Преобразовать таблицу в список (непрерывных) объектов RecordBatch.

to_pydict

< >

( *args**kwargs ) → dict

Возвращает

dict

Преобразуйте Table в dict или OrderedDict.

to_pandas

< >

( *args**kwargs ) → pandas.Series or pandas.DataFrame

Параметры

  • memory_pool (MemoryPool, по умолчанию None) — MemoryPool из Arrow, используемый для выделений памяти. Если не передан, используется пул памяти по умолчанию.
  • strings_to_categorical (bool, по умолчанию False) — Кодирует строковые (UTF8) и бинарные типы в pandas.Categorical.
  • categories (list, по умолчанию empty) — Список полей, которые должны возвращаться как pandas.Categorical. Применяется только к табличным структурам данных.
  • zero_copy_only (bool, по умолчанию False) — вызывает ArrowException, если для выполнения этого вызова функции потребовалось бы копирование исходных данных.
  • integer_object_nulls (bool, по умолчанию False) — Преобразует целые числа с null в объекты.
  • 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, при создании pandas.DataFrame из RecordBatch или Table для каждой колонки будет создан отдельный внутренний «блок». Хотя это может временно снизить потребление памяти, имейте в виду, что различные операции pandas могут вызывать «консолидацию», что приведёт к резкому росту использования памяти.
  • self_destruct (bool, по умолчанию False) — EXPERIMENTAL: если True, при преобразовании объекта Arrow в pandas будет предпринята попытка освободить исходную память Arrow. Если вы будете использовать объект после вызова to_pandas с этим параметром, программа завершится с ошибкой.
  • types_mapper (function, по умолчанию None) — Функция, сопоставляющая pyarrow DataType с ExtensionDtype pandas. Это позволяет переопределить тип pandas по умолчанию при преобразовании встроенных типов pyarrow или при отсутствии pandas_metadata в схеме Table. Функция принимает pyarrow DataType и должна возвращать ExtensionDtype pandas или None, если для данного типа следует использовать преобразование по умолчанию. Если у вас есть словарь соответствий, можно передать dict.get в качестве функции.

Возвращает

pandas.Series или pandas.DataFrame

pandas.Series или pandas.DataFrame в зависимости от типа объекта

Преобразовать в совместимый с pandas массив NumPy или DataFrame, в зависимости от ситуации.

to_string

< >

( *args**kwargs )

поле

< >

( *args**kwargs )

Параметры

  • i (Union[int, str]) — Индекс или имя поля для получения.

Выберите поле схемы по имени столбца или числовому индексу.

колонка

< >

( *args**kwargs )

Параметры

  • i (Union[int, str]) — Индекс или имя столбца для извлечения.

Выберите столбец по его имени или числовому индексу.

itercolumns

< >

( *args**kwargs )

Итератор по всем столбцам в их числовом порядке.

схема

< >

( )

Схема таблицы и её столбцов.

колонки

< >

( )

Список всех столбцов в числовом порядке.

num_columns

< >

( )

Количество столбцов в этой таблице.

num_rows

< >

( )

Количество строк в этой таблице.

В силу определения таблицы все столбцы имеют одинаковое количество строк.

форма

< >

( ) → (int, int)

Возвращает

(int, int)

Количество строк и количество столбцов.

Размеры таблицы: (#rows, #columns).

nbytes

< >

( )

Общее количество байт, занимаемое элементами таблицы.

InMemoryTable

класс datasets.table.InMemoryTable

< >

( table: Table )

Таблица считается загруженной в оперативную память, когда она помещена в RAM пользователя.

Сериализация с помощью pickle копирует все данные в память. Её реализация проста и напрямую использует методы таблицы 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) — Следует ли также проверять равенство метаданных схемы.

Возвращает

bool

Проверьте, равны ли содержимое двух таблиц.

to_batches

< >

( *args**kwargs )

Параметры

  • max_chunksize (int, по умолчанию None) — Максимальный размер блоков RecordBatch. Отдельные блоки могут быть меньше в зависимости от структуры блоков отдельных столбцов.

Преобразовать таблицу в список (непрерывных) объектов RecordBatch.

to_pydict

< >

( *args**kwargs ) → dict

Возвращает

dict

Преобразуйте Table в dict или OrderedDict.

to_pandas

< >

( *args**kwargs ) → pandas.Series or pandas.DataFrame

Параметры

  • memory_pool (MemoryPool, по умолчанию None) — MemoryPool из Arrow, используемый для выделений памяти. Если не передан, используется пул памяти по умолчанию.
  • strings_to_categorical (bool, по умолчанию False) — Кодирует строковые (UTF8) и бинарные типы в pandas.Categorical.
  • categories (list, по умолчанию empty) — Список полей, которые должны возвращаться как pandas.Categorical. Применяется только к табличным структурам данных.
  • zero_copy_only (bool, по умолчанию False) — вызывает ArrowException, если для выполнения этого вызова функции потребовалось бы копирование исходных данных.
  • integer_object_nulls (bool, по умолчанию False) — Преобразует целые числа с null в объекты.
  • 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, при создании pandas.DataFrame из RecordBatch или Table для каждой колонки будет создан отдельный внутренний «блок». Хотя это может временно снизить потребление памяти, имейте в виду, что различные операции pandas могут вызывать «консолидацию», что приведёт к резкому росту использования памяти.
  • self_destruct (bool, по умолчанию False) — EXPERIMENTAL: если True, при преобразовании объекта Arrow в pandas будет предпринята попытка освободить исходную память Arrow. Если вы будете использовать объект после вызова to_pandas с этим параметром, программа завершится с ошибкой.
  • types_mapper (function, по умолчанию None) — Функция, сопоставляющая pyarrow DataType с ExtensionDtype pandas. Это позволяет переопределить тип pandas по умолчанию при преобразовании встроенных типов pyarrow или при отсутствии pandas_metadata в схеме Table. Функция принимает pyarrow DataType и должна возвращать ExtensionDtype pandas или None, если для данного типа следует использовать преобразование по умолчанию. Если у вас есть словарь соответствий, можно передать dict.get в качестве функции.

Возвращает

pandas.Series или pandas.DataFrame

pandas.Series или pandas.DataFrame в зависимости от типа объекта

Преобразовать в совместимый с pandas массив NumPy или DataFrame, в зависимости от ситуации.

to_string

< >

( *args**kwargs )

поле

< >

( *args**kwargs )

Параметры

  • i (Union[int, str]) — Индекс или имя поля для получения.

Выберите поле схемы по имени столбца или числовому индексу.

колонка

< >

( *args**kwargs )

Параметры

  • i (Union[int, str]) — Индекс или имя столбца для извлечения.

Выберите столбец по его имени или числовому индексу.

itercolumns

< >

( *args**kwargs )

Итератор по всем столбцам в их числовом порядке.

схема

< >

( )

Схема таблицы и её столбцов.

колонки

< >

( )

Список всех столбцов в числовом порядке.

num_columns

< >

( )

Количество столбцов в этой таблице.

num_rows

< >

( )

Количество строк в этой таблице.

В силу определения таблицы все столбцы имеют одинаковое количество строк.

форма

< >

( ) → (int, int)

Возвращает

(int, int)

Количество строк и количество столбцов.

Размеры таблицы: (#rows, #columns).

nbytes

< >

( )

Общее количество байт, занимаемое элементами таблицы.

column_names

< >

( )

Имена столбцов таблицы.

slice

< >

( offset = 0length = None )

Параметры

  • offset (int, по умолчанию 0) — Смещение от начала таблицы для среза.
  • length (int, по умолчанию None) — Длина среза (по умолчанию — до конца таблицы, начиная с смещения).

Вычислить срез этой таблицы без копирования данных.

фильтр

< >

( *args**kwargs )

Выбор записей из таблицы. См. pyarrow.compute.filter для полного описания использования.

flatten

< >

( *args**kwargs )

Параметры

  • memory_pool (MemoryPool, по умолчанию None) — Пул памяти для выделений, если требуется; в противном случае используется пул по умолчанию.

Разверните эту таблицу. Каждая колонка со структурированным типом (struct) разворачивается в одну колонку на каждое поле структуры. Остальные колонки остаются без изменений.

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

Новая таблица без столбца.

Создайте новую таблицу 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 )

Создайте новую таблицу с переименованными в указанные столбцами.

select

< >

( *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 выводятся на основе dtypes объектов pandas.Series в DataFrame. В случае Series, не являющихся объектами типа object, NumPy dtype преобразуется в соответствующий ему тип Arrow. В случае object необходимо определить тип данных, анализируя Python-объекты в этой Series.

Обратите внимание, что Series с типом данных object не всегда содержат достаточно информации для однозначного определения соответствующего типа 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, по умолчанию None) — Схема создаваемой таблицы. Если не передана, необходимо передать имена.
  • metadata (Union[dict, Mapping], по умолчанию None) — Необязательные метаданные для схемы (если она была выведена).

Создайте таблицу из массивов Arrow.

from_pydict

< >

( *args**kwargs )

Параметры

  • mapping (Union[dict, Mapping]) — Соответствие строк массивам или спискам Python.
  • schema (Schema, по умолчанию None) — Если не передано, будет выведено из значений Mapping
  • 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

Создайте Table из последовательности или итератора RecordBatches Arrow.

MemoryMappedTable

класс datasets.table.MemoryMappedTable

< >

( table: Tablepath: strreplays: typing.Optional[list[tuple[str, tuple, dict]]] = None )

Таблица считается отображённой в память (memory-mapped), если она не использует оперативную память пользователя, а загружает данные непосредственно с диска.

Сериализация (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) — Следует ли также проверять равенство метаданных схемы.

Возвращает

bool

Проверьте, равны ли содержимое двух таблиц.

to_batches

< >

( *args**kwargs )

Параметры

  • max_chunksize (int, по умолчанию None) — Максимальный размер блоков RecordBatch. Отдельные блоки могут быть меньше в зависимости от структуры блоков отдельных столбцов.

Преобразовать таблицу в список (непрерывных) объектов RecordBatch.

to_pydict

< >

( *args**kwargs ) → dict

Возвращает

dict

Преобразуйте Table в dict или OrderedDict.

to_pandas

< >

( *args**kwargs ) → pandas.Series or pandas.DataFrame

Параметры

  • memory_pool (MemoryPool, по умолчанию None) — MemoryPool из Arrow, используемый для выделений памяти. Если не передан, используется пул памяти по умолчанию.
  • strings_to_categorical (bool, по умолчанию False) — Кодирует строковые (UTF8) и бинарные типы в pandas.Categorical.
  • categories (list, по умолчанию empty) — Список полей, которые должны возвращаться как pandas.Categorical. Применяется только к табличным структурам данных.
  • zero_copy_only (bool, по умолчанию False) — вызывает ArrowException, если для выполнения этого вызова функции потребовалось бы копирование исходных данных.
  • integer_object_nulls (bool, по умолчанию False) — Преобразует целые числа с null в объекты.
  • 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, при создании pandas.DataFrame из RecordBatch или Table для каждой колонки будет создан отдельный внутренний «блок». Хотя это может временно снизить потребление памяти, имейте в виду, что различные операции pandas могут вызывать «консолидацию», что приведёт к резкому росту использования памяти.
  • self_destruct (bool, по умолчанию False) — EXPERIMENTAL: если True, при преобразовании объекта Arrow в pandas будет предпринята попытка освободить исходную память Arrow. Если вы будете использовать объект после вызова to_pandas с этим параметром, программа завершится с ошибкой.
  • types_mapper (function, по умолчанию None) — Функция, сопоставляющая pyarrow DataType с ExtensionDtype pandas. Это позволяет переопределить тип pandas по умолчанию при преобразовании встроенных типов pyarrow или при отсутствии pandas_metadata в схеме Table. Функция принимает pyarrow DataType и должна возвращать ExtensionDtype pandas или None, если для данного типа следует использовать преобразование по умолчанию. Если у вас есть словарь соответствий, можно передать dict.get в качестве функции.

Возвращает

pandas.Series или pandas.DataFrame

pandas.Series или pandas.DataFrame в зависимости от типа объекта

Преобразовать в совместимый с pandas массив NumPy или DataFrame, в зависимости от ситуации.

to_string

< >

( *args**kwargs )

поле

< >

( *args**kwargs )

Параметры

  • i (Union[int, str]) — Индекс или имя поля для получения.

Выберите поле схемы по имени столбца или числовому индексу.

колонка

< >

( *args**kwargs )

Параметры

  • i (Union[int, str]) — Индекс или имя столбца для извлечения.

Выберите столбец по его имени или числовому индексу.

itercolumns

< >

( *args**kwargs )

Итератор по всем столбцам в их числовом порядке.

схема

< >

( )

Схема таблицы и её столбцов.

колонки

< >

( )

Список всех столбцов в числовом порядке.

num_columns

< >

( )

Количество столбцов в этой таблице.

num_rows

< >

( )

Количество строк в этой таблице.

В силу определения таблицы все столбцы имеют одинаковое количество строк.

форма

< >

( ) → (int, int)

Возвращает

(int, int)

Количество строк и количество столбцов.

Размеры таблицы: (#rows, #columns).

nbytes

< >

( )

Общее количество байт, занимаемое элементами таблицы.

column_names

< >

( )

Имена столбцов таблицы.

slice

< >

( offset = 0length = None )

Параметры

  • offset (int, по умолчанию 0) — Смещение от начала таблицы для среза.
  • length (int, по умолчанию None) — Длина среза (по умолчанию — до конца таблицы, начиная с смещения).

Вычислить срез этой таблицы без копирования данных.

фильтр

< >

( *args**kwargs )

Выбор записей из таблицы. См. pyarrow.compute.filter для полного описания использования.

flatten

< >

( *args**kwargs )

Параметры

  • memory_pool (MemoryPool, по умолчанию None) — Пул памяти для выделений, если требуется; в противном случае используется пул по умолчанию.

Разверните эту таблицу. Каждая колонка со структурированным типом (struct) разворачивается в одну колонку на каждое поле структуры. Остальные колонки остаются без изменений.

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

EXPERIMENTAL: Создать поверхностную копию таблицы, заменив метаданные схемы в формате ключ-значение указанными новыми метаданными (которые могут быть 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

Новая таблица без столбца.

Создайте новую таблицу 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 )

Создайте новую таблицу с переименованными в указанные столбцами.

select

< >

( *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: strreplays = None )

ConcatenationTable

класс datasets.table.ConcatenationTable

< >

( table: Tableblocks: list )

Таблица формируется путём конкатенации нескольких таблиц, называемых блоками. Она поддерживает конкатенацию как по оси 0 (добавление строк), так и по оси 1 (добавление столбцов).

Базовые таблицы называются «блоками» и могут быть объектами InMemoryTable или MemoryMappedTable. Это позволяет объединять таблицы, находящиеся в памяти, или отображённые в память. При сериализации объекта ConcatenationTable каждый блок сериализуется отдельно:

  • объекты InMemoryTable сериализуются с помощью pickle путём копирования всех данных в память.
  • Объекты MemoryMappedTable сериализуются с помощью pickle без копирования данных в оперативную память. Вместо этого сериализуется только путь к файлу arrow, отображенному в память, а также список преобразований, которые необходимо «воспроизвести» при повторной загрузке таблицы с диска.

Её реализация требует хранить каждый блок отдельно. Атрибут 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) — Следует ли также проверять равенство метаданных схемы.

Возвращает

bool

Проверьте, равны ли содержимое двух таблиц.

to_batches

< >

( *args**kwargs )

Параметры

  • max_chunksize (int, по умолчанию None) — Максимальный размер блоков RecordBatch. Отдельные блоки могут быть меньше в зависимости от структуры блоков отдельных столбцов.

Преобразовать таблицу в список (непрерывных) объектов RecordBatch.

to_pydict

< >

( *args**kwargs ) → dict

Возвращает

dict

Преобразуйте Table в dict или OrderedDict.

to_pandas

< >

( *args**kwargs ) → pandas.Series or pandas.DataFrame

Параметры

  • memory_pool (MemoryPool, по умолчанию None) — MemoryPool из Arrow, используемый для выделений памяти. Если не передан, используется пул памяти по умолчанию.
  • strings_to_categorical (bool, по умолчанию False) — Кодирует строковые (UTF8) и бинарные типы в pandas.Categorical.
  • categories (list, по умолчанию empty) — Список полей, которые должны возвращаться как pandas.Categorical. Применяется только к табличным структурам данных.
  • zero_copy_only (bool, по умолчанию False) — вызывает ArrowException, если для выполнения этого вызова функции потребовалось бы копирование исходных данных.
  • integer_object_nulls (bool, по умолчанию False) — Преобразует целые числа с null в объекты.
  • 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, при создании pandas.DataFrame из RecordBatch или Table для каждой колонки будет создан отдельный внутренний «блок». Хотя это может временно снизить потребление памяти, имейте в виду, что различные операции pandas могут вызывать «консолидацию», что приведёт к резкому росту использования памяти.
  • self_destruct (bool, по умолчанию False) — EXPERIMENTAL: если True, при преобразовании объекта Arrow в pandas будет предпринята попытка освободить исходную память Arrow. Если вы будете использовать объект после вызова to_pandas с этим параметром, программа завершится с ошибкой.
  • types_mapper (function, по умолчанию None) — Функция, сопоставляющая pyarrow DataType с ExtensionDtype pandas. Это позволяет переопределить тип pandas по умолчанию при преобразовании встроенных типов pyarrow или при отсутствии pandas_metadata в схеме Table. Функция принимает pyarrow DataType и должна возвращать ExtensionDtype pandas или None, если для данного типа следует использовать преобразование по умолчанию. Если у вас есть словарь соответствий, можно передать dict.get в качестве функции.

Возвращает

pandas.Series или pandas.DataFrame

pandas.Series или pandas.DataFrame в зависимости от типа объекта

Преобразовать в совместимый с pandas массив NumPy или DataFrame, в зависимости от ситуации.

to_string

< >

( *args**kwargs )

поле

< >

( *args**kwargs )

Параметры

  • i (Union[int, str]) — Индекс или имя поля для получения.

Выберите поле схемы по имени столбца или числовому индексу.

колонка

< >

( *args**kwargs )

Параметры

  • i (Union[int, str]) — Индекс или имя столбца для извлечения.

Выберите столбец по его имени или числовому индексу.

itercolumns

< >

( *args**kwargs )

Итератор по всем столбцам в их числовом порядке.

схема

< >

( )

Схема таблицы и её столбцов.

колонки

< >

( )

Список всех столбцов в числовом порядке.

num_columns

< >

( )

Количество столбцов в этой таблице.

num_rows

< >

( )

Количество строк в этой таблице.

В силу определения таблицы все столбцы имеют одинаковое количество строк.

форма

< >

( ) → (int, int)

Возвращает

(int, int)

Количество строк и количество столбцов.

Размеры таблицы: (#rows, #columns).

nbytes

< >

( )

Общее количество байт, занимаемое элементами таблицы.

column_names

< >

( )

Имена столбцов таблицы.

slice

< >

( offset = 0length = None )

Параметры

  • offset (int, по умолчанию 0) — Смещение от начала таблицы для среза.
  • length (int, по умолчанию None) — Длина среза (по умолчанию — до конца таблицы, начиная с смещения).

Вычислить срез этой таблицы без копирования данных.

фильтр

< >

( mask*args**kwargs )

Выбор записей из таблицы. См. pyarrow.compute.filter для полного описания использования.

flatten

< >

( *args**kwargs )

Параметры

  • memory_pool (MemoryPool, по умолчанию None) — Пул памяти для выделений, если требуется; в противном случае используется пул по умолчанию.

Разверните эту таблицу. Каждая колонка со структурированным типом (struct) разворачивается в одну колонку на каждое поле структуры. Остальные колонки остаются без изменений.

combine_chunks

< >

( *args**kwargs )

Параметры

  • memory_pool (MemoryPool, по умолчанию None) — Пул памяти для выделений, если требуется; в противном случае используется пул по умолчанию.

Создайте новую таблицу, объединив фрагменты, из которых состоит эта таблица.

Все базовые фрагменты в ChunkedArray каждого столбца объединяются в ноль или один фрагмент.

cast

< >

( target_schema*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

< >

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

Параметры

  • i (int) — Индекс удаляемой колонки.

Возвращает

datasets.table.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 )

Создайте новую таблицу с переименованными в указанные столбцами.

select

< >

( 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: listaxis: int = 0 )

Параметры

  • tables (список Table или список pyarrow.Table) — Список таблиц.
  • axis ({0, 1}, по умолчанию 0, означает по строкам) — ось, по которой выполняется конкатенация, где 0 означает по строкам (вертикально), а 1 означает по столбцам (горизонтально).

    Добавлено в 1.6.0

Создайте ConcatenationTable из списка таблиц.

Утилиты

datasets.table.concat_tables

< >

( tables: listaxis: 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]

Список путей к файлам кэша, загруженным таблицей.

Получите файлы кэша, которые загружаются таблицей. Файлы кэша используются, когда части таблицы загружаются с диска через отображение в память.

Update on GitHub