Spec-Zone.ru › Polars

polars.read_csv_batched

polars.read_csv_batched(
    source: str | Path,
    *,
    has_header: bool = True,
    columns: Sequence[int] | Sequence[str] | None = None,
    new_columns: Sequence[str] | None = None,
    separator: str = ',',
    comment_prefix: str | None = None,
    quote_char: str | None = '"',
    skip_rows: int = 0,
    skip_lines: int = 0,
    schema_overrides: Mapping[str,
    PolarsDataType] | Sequence[PolarsDataType] | None = None,
    null_values: str | Sequence[str] | dict[str,
    str] | None = None,
    empty_string_is_null: bool = True,
    ignore_errors: bool = False,
    try_parse_dates: bool = False,
    n_threads: int | None = None,
    infer_schema_length: int | None = 100,
    batch_size: int = 50000,
    n_rows: int | None = None,
    encoding: CsvEncoding | str = 'utf8',
    low_memory: bool = False,
    rechunk: bool | None = None,
    skip_rows_after_header: int = 0,
    row_index_name: str | None = None,
    row_index_offset: int = 0,
    sample_size: int = 1024,
    eol_char: str = '\n',
    raise_if_empty: bool = True,
    truncate_ragged_lines: bool = False,
    decimal_comma: bool = False,
) → BatchedCsvReader

Читать CSV-файл пакетами.

При создании BatchedCsvReader Polars соберёт статистику и определит фрагменты файла. После этого обработка будет выполняться только при вызове next_batches, который вернёт список кадров n заданного размера пакета.

Изменено в версии 0.20.31: Параметр dtypes переименован в schema_overrides.

Изменено в версии 0.20.4: * Параметр row_count_name переименован в row_index_name. * Параметр row_count_offset переименован в row_index_offset.

Устарело начиная с версии 1.37.0: Вместо этого используйте scan_csv().collect_batches().

Параметры:
source

Путь к файлу или файловоподобному объекту (под «файловоподобным объектом» подразумеваются объекты с методом read(), например файловый дескриптор, полученный с помощью встроенной функции open, или экземпляр BytesIO). Если установлен fsspec, он может использоваться для открытия удалённых файлов. При чтении из файловоподобных объектов позиция потока может обновляться некорректно.

has_header

Указывает, является ли первая строка набора данных заголовком. Если задано значение False, имена столбцов будут сгенерированы в следующем формате: column_x, где x — это порядковый номер каждого столбца в наборе данных, начиная с 1.

columns

Столбцы для выбора. Принимает список индексов столбцов (начиная с нуля) или список имён столбцов.

new_columns

Переименовать столбцы сразу после разбора CSV-файла. Если заданный список короче ширины DataFrame, имена оставшихся столбцов не изменятся.

separator

Однобайтовый символ-разделитель в файле.

comment_prefix

Строка, обозначающая начало строки-комментария. Строки-комментарии пропускаются при разборе. Распространённые примеры префиксов комментариев: # и //.

quote_char

Однобайтовый символ для заключения полей CSV в кавычки; по умолчанию — ". Задайте None, чтобы отключить специальную обработку кавычек и экранирование.

skip_rows

Начать чтение после skip_rows строк. Заголовок будет разобран со смещения, соответствующего этому значению. При пропуске строк учитываются экранирование CSV и комментарии. Если нужно пропускать строки только по символу переноса строки, используйте skip_lines.

skip_lines

Начать чтение после skip_lines строк. Заголовок будет разобран со смещения, соответствующего этому значению. При пропуске строк экранирование CSV не учитывается. Если нужно пропускать корректные строки CSV, используйте skip_rows.

schema_overrides

Переопределить типы данных во время определения схемы.

null_values

Значения, которые следует трактовать как null. Можно указать:

  • str: Все значения, совпадающие с этой строкой, будут считаться null.
  • List[str]: Все значения, совпадающие с любой строкой из этого списка, будут считаться null.
  • Dict[str, str]: Словарь, сопоставляющий имя столбца со строкой, представляющей значение null.
empty_string_is_null

По умолчанию отсутствующее строковое значение считается null. Если для empty_string_is_null задано значение False, отсутствующие строковые значения будут декодированы как пустые строки.

ignore_errors

Продолжать чтение строк, даже если некоторые из них приводят к ошибкам. Сначала попробуйте использовать infer_schema_length=0, чтобы прочитать все столбцы как pl.String и выяснить, какие значения могут вызывать проблему.

try_parse_dates

Попытаться автоматически разобрать даты. Можно определить большинство форматов, подобных ISO8601, а также несколько других. Если это не удастся, тип данных столбца останется pl.String.

n_threads

Количество потоков для разбора CSV. По умолчанию используется количество физических ядер процессора в вашей системе.

infer_schema_length

Максимальное количество строк для сканирования при определении схемы. Если задано значение 0, все столбцы будут прочитаны как pl.String. Если задано значение None, могут быть просканированы все данные (это медленно).

batch_size

Количество строк, одновременно считываемых в буфер.

Измените это значение, чтобы повлиять на производительность.

n_rows

Прекратить чтение CSV-файла после чтения n_rows. При многопоточном разборе невозможно гарантировать верхнюю границу в n_rows строк.

encoding{‘utf8’, ‘utf8-lossy’, …}

Потеря данных означает, что недопустимые значения utf8 заменяются символами �. При использовании кодировок, отличных от utf8 или utf8-lossy, входные данные сначала декодируются в памяти с помощью Python. По умолчанию используется utf8.

low_memory

Снизить нагрузку на память за счёт производительности.

rechunk

Обеспечить непрерывное расположение всех столбцов в памяти, объединив фрагменты в один массив.

Устарело начиная с версии 1.43.2: Вызовите rechunk для возвращённого DataFrame или DataFrame.

skip_rows_after_header

Пропустить указанное количество строк после разбора заголовка.

row_index_name

Добавить в DataFrame столбец индекса строк с указанным именем в качестве первого столбца. Если задано значение None (по умолчанию), столбец индекса строк не создаётся.

row_index_offset

Начать отсчёт индекса строк с этого смещения. Значение не может быть отрицательным. Используется, только если задан row_index_name.

sample_size

Задать размер выборки. Она используется для сбора статистики, позволяющей оценить необходимые объёмы памяти.

Устарело начиная с версии 1.10.0: Ничего не делает.

eol_char

Однобайтовый символ конца строки (по умолчанию: \n). При обработке файла с переводами строк Windows (\r\n) можно оставить значение по умолчанию \n. Дополнительный символ \r будет удалён при обработке.

raise_if_empty

Если источник не содержит данных, вызывается `NoDataError`. Если для этого параметра задано значение False, вместо этого next_batches(n) вернёт None.

truncate_ragged_lines

Обрезать строки, длина которых превышает длину, заданную схемой.

decimal_comma

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

Возвращает:
BatchedCsvReader

См. также

scan_csv

Лениво читать данные из CSV-файла или нескольких файлов с помощью шаблонов glob.

Примеры

>>> reader = pl.read_csv_batched(
...     "./pdsh/tables_scale_100/lineitem.tbl",
...     separator="|",
...     try_parse_dates=True,
... )  
>>> batches = reader.next_batches(5)  
>>> for df in batches:  
...     print(df)

Чтение большого CSV-файла пакетами и запись отдельного CSV-файла для каждой интересующей «группы».

>>> seen_groups = set()
>>> reader = pl.read_csv_batched("big_file.csv")  
>>> batches = reader.next_batches(100)  
>>> while batches:  
...     df_current_batches = pl.concat(batches)
...     partition_dfs = df_current_batches.partition_by("group", as_dict=True)
...
...     for group, df in partition_dfs.items():
...         if group in seen_groups:
...             with open(f"./data/{group}.csv", "a") as fh:
...                 fh.write(df.write_csv(file=None, include_header=False))
...         else:
...             df.write_csv(file=f"./data/{group}.csv", include_header=True)
...         seen_groups.add(group)
...
...     batches = reader.next_batches(100)

© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/api/polars.read_csv_batched.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API