Datasets documentation
Классы таблиц
Классы таблиц
Каждый объект Dataset опирается на таблицу PyArrow.
Таблицу можно загрузить с диска (с отображением в память) или непосредственно в память.
Доступно несколько типов таблиц, и все они наследуются от 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
< source >( *args**kwargs )
Выполните проверки валидации. Если валидация не пройдена, будет выброшено исключение.
По умолчанию выполняются только недорогие проверки валидации. Передайте full=True для тщательных проверок валидации (потенциально O(n)).
equals
< source >( *args**kwargs ) → bool
Параметры
- other (Table) — Таблица для сравнения.
- check_metadata
bool, по умолчаниюFalse) — Следует ли также проверять равенство метаданных схемы.
Возвращает
bool
Проверьте, равны ли содержимое двух таблиц.
to_batches
< source >( *args**kwargs )
Преобразовать таблицу в список (непрерывных) объектов RecordBatch.
Преобразуйте Table в dict или OrderedDict.
to_pandas
< source >( *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 сExtensionDtypepandas. Это позволяет переопределить тип pandas по умолчанию при преобразовании встроенных типов pyarrow или при отсутствииpandas_metadataв схеме Table. Функция принимает pyarrow DataType и должна возвращатьExtensionDtypepandas илиNone, если для данного типа следует использовать преобразование по умолчанию. Если у вас есть словарь соответствий, можно передатьdict.getв качестве функции.
Возвращает
pandas.Series или pandas.DataFrame
pandas.Series или pandas.DataFrame в зависимости от типа объекта
Преобразовать в совместимый с pandas массив NumPy или DataFrame, в зависимости от ситуации.
поле
< source >( *args**kwargs )
Выберите поле схемы по имени столбца или числовому индексу.
колонка
< source >( *args**kwargs )
Выберите столбец по его имени или числовому индексу.
Итератор по всем столбцам в их числовом порядке.
Схема таблицы и её столбцов.
Список всех столбцов в числовом порядке.
Количество столбцов в этой таблице.
Количество строк в этой таблице.
В силу определения таблицы все столбцы имеют одинаковое количество строк.
Размеры таблицы: (#rows, #columns).
Общее количество байт, занимаемое элементами таблицы.
InMemoryTable
Таблица считается загруженной в оперативную память, когда она помещена в RAM пользователя.
Сериализация с помощью pickle копирует все данные в память. Её реализация проста и напрямую использует методы таблицы pyarrow.
Это отличается от таблицы MemoryMapped, для которой pickling не копирует все данные в память. Для MemoryMapped unpickling, напротив, перечитывает таблицу с диска.
InMemoryTable следует использовать, когда данные помещаются в оперативную память, тогда как MemoryMapped предназначены для данных, превышающих объём памяти, или когда вы хотите, чтобы потребление памяти вашим приложением оставалось низким.
validate
< source >( *args**kwargs )
Выполните проверки валидации. Если валидация не пройдена, будет выброшено исключение.
По умолчанию выполняются только недорогие проверки валидации. Передайте full=True для тщательных проверок валидации (потенциально O(n)).
equals
< source >( *args**kwargs ) → bool
Параметры
- other (Table) — Таблица для сравнения.
- check_metadata
bool, по умолчаниюFalse) — Следует ли также проверять равенство метаданных схемы.
Возвращает
bool
Проверьте, равны ли содержимое двух таблиц.
to_batches
< source >( *args**kwargs )
Преобразовать таблицу в список (непрерывных) объектов RecordBatch.
Преобразуйте Table в dict или OrderedDict.
to_pandas
< source >( *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 сExtensionDtypepandas. Это позволяет переопределить тип pandas по умолчанию при преобразовании встроенных типов pyarrow или при отсутствииpandas_metadataв схеме Table. Функция принимает pyarrow DataType и должна возвращатьExtensionDtypepandas илиNone, если для данного типа следует использовать преобразование по умолчанию. Если у вас есть словарь соответствий, можно передатьdict.getв качестве функции.
Возвращает
pandas.Series или pandas.DataFrame
pandas.Series или pandas.DataFrame в зависимости от типа объекта
Преобразовать в совместимый с pandas массив NumPy или DataFrame, в зависимости от ситуации.
поле
< source >( *args**kwargs )
Выберите поле схемы по имени столбца или числовому индексу.
колонка
< source >( *args**kwargs )
Выберите столбец по его имени или числовому индексу.
Итератор по всем столбцам в их числовом порядке.
Схема таблицы и её столбцов.
Список всех столбцов в числовом порядке.
Количество столбцов в этой таблице.
Количество строк в этой таблице.
В силу определения таблицы все столбцы имеют одинаковое количество строк.
Размеры таблицы: (#rows, #columns).
Общее количество байт, занимаемое элементами таблицы.
Имена столбцов таблицы.
slice
< source >( offset = 0length = None )
Вычислить срез этой таблицы без копирования данных.
Выбор записей из таблицы. См. pyarrow.compute.filter для полного описания использования.
flatten
< source >( *args**kwargs )
Разверните эту таблицу. Каждая колонка со структурированным типом (struct) разворачивается в одну колонку на каждое поле структуры. Остальные колонки остаются без изменений.
combine_chunks
< source >( *args**kwargs )
Создайте новую таблицу, объединив фрагменты, из которых состоит эта таблица.
Все базовые фрагменты в ChunkedArray каждого столбца объединяются в ноль или один фрагмент.
cast
< source >( *args**kwargs )
Преобразование значений таблицы к другой схеме.
replace_schema_metadata
< source >( *args**kwargs ) → datasets.table.Table
ЭКСПЕРИМЕНТАЛЬНО: Создать поверхностную копию таблицы, заменив метаданные схемы в формате ключ-значение указанными новыми метаданными (которые могут быть None, что приводит к удалению существующих метаданных).
add_column
< source >( *args**kwargs ) → datasets.table.Table
Параметры
- i (
int) — Индекс, по которому нужно разместить столбец. - field_ (
Union[str, pyarrow.Field]) — Если передана строка, тип выводится из данных столбца. - column (
Union[pyarrow.Array, List[pyarrow.Array]]) — Данные столбца.
Возвращает
datasets.table.Table
Новая таблица с добавленным переданным столбцом.
Добавить столбец в таблицу в указанную позицию.
Возвращается новая таблица с добавленным столбцом, исходный объект таблицы остаётся неизменным.
append_column
< source >( *args**kwargs ) → datasets.table.Table
Добавить столбец в конец списка столбцов.
remove_column
< source >( *args**kwargs ) → datasets.table.Table
Создайте новую таблицу Table с удалённой указанной колонкой.
set_column
< source >( *args**kwargs ) → datasets.table.Table
Параметры
- i (
int) — Индекс, по которому нужно разместить столбец. - field_ (
Union[str, pyarrow.Field]) — Если передана строка, тип выводится из данных столбца. - column (
Union[pyarrow.Array, List[pyarrow.Array]]) — Данные столбца.
Возвращает
datasets.table.Table
Новая таблица с переданным набором столбцов.
Заменить столбец в таблице на позиции.
Создайте новую таблицу с переименованными в указанные столбцами.
select
< source >( *args**kwargs ) → datasets.table.Table
Параметры
Возвращает
Новая таблица с указанными столбцами, метаданные сохранены.
Выберите столбцы таблицы.
Возвращает новую таблицу с указанными столбцами, сохраняя метаданные.
drop
< source >( *args**kwargs ) → datasets.table.Table
Удалите одну или несколько столбцов и верните новую таблицу.
from_pandas
< source >( *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. Этого поведения можно избежать, создав явную схему и передав её в эту функцию.
from_arrays
< source >( *args**kwargs )
Параметры
- arrays (
List[Union[pyarrow.Array, pyarrow.ChunkedArray]]) — Массивы одинаковой длины, которые должны образовать таблицу. - names (
List[str], необязательный) — Имена столбцов таблицы. Если не передано, необходимо передать схему. - schema (
Schema, по умолчаниюNone) — Схема создаваемой таблицы. Если не передана, необходимо передать имена. - metadata (
Union[dict, Mapping], по умолчаниюNone) — Необязательные метаданные для схемы (если она была выведена).
Создайте таблицу из массивов Arrow.
from_pydict
< source >( *args**kwargs )
Создайте таблицу из массивов или столбцов Arrow.
from_batches
< source >( *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
< source >( table: Tablepath: strreplays: typing.Optional[list[tuple[str, tuple, dict]]] = None )
Таблица считается отображённой в память (memory-mapped), если она не использует оперативную память пользователя, а загружает данные непосредственно с диска.
Сериализация (pickling) не копирует данные в память. Вместо этого сериализуется только путь к файлу arrow, отображённому в память, а также список преобразований, которые необходимо «воспроизвести» при повторной загрузке таблицы с диска.
Её реализация требует хранения истории всех применённых к базовой таблице pyarrow преобразований, чтобы их можно было «воспроизвести» при повторной загрузке таблицы с диска.
Это отличается от таблицы InMemoryTable, для которой сериализация действительно копирует все данные в памяти.
InMemoryTable следует использовать, когда данные помещаются в оперативную память, тогда как MemoryMapped предназначены для данных, превышающих объём памяти, или когда вы хотите, чтобы потребление памяти вашим приложением оставалось низким.
validate
< source >( *args**kwargs )
Выполните проверки валидации. Если валидация не пройдена, будет выброшено исключение.
По умолчанию выполняются только недорогие проверки валидации. Передайте full=True для тщательных проверок валидации (потенциально O(n)).
equals
< source >( *args**kwargs ) → bool
Параметры
- other (Table) — Таблица для сравнения.
- check_metadata
bool, по умолчаниюFalse) — Следует ли также проверять равенство метаданных схемы.
Возвращает
bool
Проверьте, равны ли содержимое двух таблиц.
to_batches
< source >( *args**kwargs )
Преобразовать таблицу в список (непрерывных) объектов RecordBatch.
Преобразуйте Table в dict или OrderedDict.
to_pandas
< source >( *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 сExtensionDtypepandas. Это позволяет переопределить тип pandas по умолчанию при преобразовании встроенных типов pyarrow или при отсутствииpandas_metadataв схеме Table. Функция принимает pyarrow DataType и должна возвращатьExtensionDtypepandas илиNone, если для данного типа следует использовать преобразование по умолчанию. Если у вас есть словарь соответствий, можно передатьdict.getв качестве функции.
Возвращает
pandas.Series или pandas.DataFrame
pandas.Series или pandas.DataFrame в зависимости от типа объекта
Преобразовать в совместимый с pandas массив NumPy или DataFrame, в зависимости от ситуации.
поле
< source >( *args**kwargs )
Выберите поле схемы по имени столбца или числовому индексу.
колонка
< source >( *args**kwargs )
Выберите столбец по его имени или числовому индексу.
Итератор по всем столбцам в их числовом порядке.
Схема таблицы и её столбцов.
Список всех столбцов в числовом порядке.
Количество столбцов в этой таблице.
Количество строк в этой таблице.
В силу определения таблицы все столбцы имеют одинаковое количество строк.
Размеры таблицы: (#rows, #columns).
Общее количество байт, занимаемое элементами таблицы.
Имена столбцов таблицы.
slice
< source >( offset = 0length = None )
Вычислить срез этой таблицы без копирования данных.
Выбор записей из таблицы. См. pyarrow.compute.filter для полного описания использования.
flatten
< source >( *args**kwargs )
Разверните эту таблицу. Каждая колонка со структурированным типом (struct) разворачивается в одну колонку на каждое поле структуры. Остальные колонки остаются без изменений.
combine_chunks
< source >( *args**kwargs )
Создайте новую таблицу, объединив фрагменты, из которых состоит эта таблица.
Все базовые фрагменты в ChunkedArray каждого столбца объединяются в ноль или один фрагмент.
cast
< source >( *args**kwargs )
Преобразование значений таблицы к другой схеме
replace_schema_metadata
< source >( *args**kwargs ) → datasets.table.Table
EXPERIMENTAL: Создать поверхностную копию таблицы, заменив метаданные схемы в формате ключ-значение указанными новыми метаданными (которые могут быть None, что приводит к удалению существующих метаданных.
add_column
< source >( *args**kwargs ) → datasets.table.Table
Параметры
- i (
int) — Индекс, по которому нужно разместить столбец. - field_ (
Union[str, pyarrow.Field]) — Если передана строка, тип выводится из данных столбца. - column (
Union[pyarrow.Array, List[pyarrow.Array]]) — Данные столбца.
Возвращает
datasets.table.Table
Новая таблица с добавленным переданным столбцом.
Добавить столбец в таблицу в указанную позицию.
Возвращается новая таблица с добавленным столбцом, исходный объект таблицы остаётся неизменным.
append_column
< source >( *args**kwargs ) → datasets.table.Table
Добавить столбец в конец списка столбцов.
remove_column
< source >( *args**kwargs ) → datasets.table.Table
Создайте новую таблицу Table с удалённой указанной колонкой.
set_column
< source >( *args**kwargs ) → datasets.table.Table
Параметры
- i (
int) — Индекс, по которому нужно разместить столбец. - field_ (
Union[str, pyarrow.Field]) — Если передана строка, тип выводится из данных столбца. - column (
Union[pyarrow.Array, List[pyarrow.Array]]) — Данные столбца.
Возвращает
datasets.table.Table
Новая таблица с переданным набором столбцов.
Заменить столбец в таблице на позиции.
Создайте новую таблицу с переименованными в указанные столбцами.
select
< source >( *args**kwargs ) → datasets.table.Table
Параметры
Возвращает
Новая таблица с указанными столбцами, метаданные сохранены.
Выберите столбцы таблицы.
Возвращает новую таблицу с указанными столбцами, сохраняя метаданные.
drop
< source >( *args**kwargs ) → datasets.table.Table
Удалите одну или несколько столбцов и верните новую таблицу.
ConcatenationTable
Таблица формируется путём конкатенации нескольких таблиц, называемых блоками. Она поддерживает конкатенацию как по оси 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
< source >( *args**kwargs )
Выполните проверки валидации. Если валидация не пройдена, будет выброшено исключение.
По умолчанию выполняются только недорогие проверки валидации. Передайте full=True для тщательных проверок валидации (потенциально O(n)).
equals
< source >( *args**kwargs ) → bool
Параметры
- other (Table) — Таблица для сравнения.
- check_metadata
bool, по умолчаниюFalse) — Следует ли также проверять равенство метаданных схемы.
Возвращает
bool
Проверьте, равны ли содержимое двух таблиц.
to_batches
< source >( *args**kwargs )
Преобразовать таблицу в список (непрерывных) объектов RecordBatch.
Преобразуйте Table в dict или OrderedDict.
to_pandas
< source >( *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 сExtensionDtypepandas. Это позволяет переопределить тип pandas по умолчанию при преобразовании встроенных типов pyarrow или при отсутствииpandas_metadataв схеме Table. Функция принимает pyarrow DataType и должна возвращатьExtensionDtypepandas илиNone, если для данного типа следует использовать преобразование по умолчанию. Если у вас есть словарь соответствий, можно передатьdict.getв качестве функции.
Возвращает
pandas.Series или pandas.DataFrame
pandas.Series или pandas.DataFrame в зависимости от типа объекта
Преобразовать в совместимый с pandas массив NumPy или DataFrame, в зависимости от ситуации.
поле
< source >( *args**kwargs )
Выберите поле схемы по имени столбца или числовому индексу.
колонка
< source >( *args**kwargs )
Выберите столбец по его имени или числовому индексу.
Итератор по всем столбцам в их числовом порядке.
Схема таблицы и её столбцов.
Список всех столбцов в числовом порядке.
Количество столбцов в этой таблице.
Количество строк в этой таблице.
В силу определения таблицы все столбцы имеют одинаковое количество строк.
Размеры таблицы: (#rows, #columns).
Общее количество байт, занимаемое элементами таблицы.
Имена столбцов таблицы.
slice
< source >( offset = 0length = None )
Вычислить срез этой таблицы без копирования данных.
Выбор записей из таблицы. См. pyarrow.compute.filter для полного описания использования.
flatten
< source >( *args**kwargs )
Разверните эту таблицу. Каждая колонка со структурированным типом (struct) разворачивается в одну колонку на каждое поле структуры. Остальные колонки остаются без изменений.
combine_chunks
< source >( *args**kwargs )
Создайте новую таблицу, объединив фрагменты, из которых состоит эта таблица.
Все базовые фрагменты в ChunkedArray каждого столбца объединяются в ноль или один фрагмент.
cast
< source >( target_schema*args**kwargs )
Преобразование значений таблицы к другой схеме.
replace_schema_metadata
< source >( *args**kwargs ) → datasets.table.Table
ЭКСПЕРИМЕНТАЛЬНО: Создать поверхностную копию таблицы, заменив метаданные схемы в формате ключ-значение указанными новыми метаданными (которые могут быть None, что приводит к удалению существующих метаданных).
add_column
< source >( *args**kwargs ) → datasets.table.Table
Параметры
- i (
int) — Индекс, по которому нужно разместить столбец. - field_ (
Union[str, pyarrow.Field]) — Если передана строка, тип выводится из данных столбца. - column (
Union[pyarrow.Array, List[pyarrow.Array]]) — Данные столбца.
Возвращает
datasets.table.Table
Новая таблица с добавленным переданным столбцом.
Добавить столбец в таблицу в указанную позицию.
Возвращается новая таблица с добавленным столбцом, исходный объект таблицы остаётся неизменным.
append_column
< source >( *args**kwargs ) → datasets.table.Table
Добавить столбец в конец списка столбцов.
remove_column
< source >( i*args**kwargs ) → datasets.table.Table
Создайте новую таблицу Table с удалённой указанной колонкой.
set_column
< source >( *args**kwargs ) → datasets.table.Table
Параметры
- i (
int) — Индекс, по которому нужно разместить столбец. - field_ (
Union[str, pyarrow.Field]) — Если передана строка, тип выводится из данных столбца. - column (
Union[pyarrow.Array, List[pyarrow.Array]]) — Данные столбца.
Возвращает
datasets.table.Table
Новая таблица с переданным набором столбцов.
Заменить столбец в таблице на позиции.
Создайте новую таблицу с переименованными в указанные столбцами.
select
< source >( columns*args**kwargs ) → datasets.table.Table
Параметры
Возвращает
Новая таблица с указанными столбцами, метаданные сохранены.
Выберите столбцы таблицы.
Возвращает новую таблицу с указанными столбцами, сохраняя метаданные.
drop
< source >( columns*args**kwargs ) → datasets.table.Table
Удалите одну или несколько столбцов и верните новую таблицу.
from_tables
< source >( tables: listaxis: int = 0 )
Создайте ConcatenationTable из списка таблиц.
Утилиты
datasets.table.concat_tables
< source >( 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
< source >( table: Table ) → List[str]
Возвращает
List[str]
Список путей к файлам кэша, загруженным таблицей.
Получите файлы кэша, которые загружаются таблицей. Файлы кэша используются, когда части таблицы загружаются с диска через отображение в память.