pandas.read_csv#

pandas.read_csv(filepath_or_buffer, *, sep=, delimiter=None, header='infer', names=, index_col=None, usecols=None, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=, skip_blank_lines=True, parse_dates=None, infer_datetime_format=, keep_date_col=, date_parser=, date_format=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, encoding_errors='strict', dialect=None, on_bad_lines='error', delim_whitespace=, low_memory=True, memory_map=False, float_precision=None, storage_options=None, dtype_backend=)[источник]#

Чтение файла значений, разделенных запятыми (csv), в DataFrame.

Также поддерживает опциональную итерацию или разбиение файла на фрагменты.

Дополнительную помощь можно найти в онлайн-документации для Инструменты ввода-вывода.

Параметры:
filepath_or_bufferstr, объект пути или файлоподобный объект

Любой допустимый строковый путь приемлем. Строка может быть URL. Допустимые схемы URL включают http, ftp, s3, gs и file. Для URL-адресов файлов ожидается хост. Локальный файл может быть: file://localhost/path/to/table.csv.

Если вы хотите передать объект пути, pandas принимает любой os.PathLike.

Под файлоподобным объектом мы подразумеваем объекты с read() метод, такой как файловый дескриптор (например, через встроенный open функция) или StringIO.

sepstr, по умолчанию ','

Символ или регулярное выражение, рассматриваемое как разделитель. Если sep=None, C движок не может автоматически определить разделитель, но Python парсер может, что означает использование последнего и автоматическое определение разделителя только из первой валидной строки файла с помощью встроенного инструмента Python sniffer, csv.Sniffer. Кроме того, разделители длиннее 1 символа и отличающиеся от '\s+' будут интерпретироваться как регулярные выражения и также будут принудительно использовать механизм парсинга Python. Обратите внимание, что разделители регулярных выражений склонны игнорировать данные в кавычках. Пример регулярного выражения: '\r\t'.

разделительstr, optional

Псевдоним для sep.

headerint, Sequence of int, ‘infer’ или None, по умолчанию ‘infer’

Номер(а) строк, содержащих метки колонок и отмечающих начало данных (с нулевой индексацией). Поведение по умолчанию — определить имена колонок: если нет names при передаче поведение идентично header=0 и имена столбцов выводятся из первой строки файла, если имена столбцов переданы явно в names тогда поведение идентично header=None. Явно передать header=0 чтобы иметь возможность заменять существующие имена. Заголовок может быть списком целых чисел, указывающих позиции строк для MultiIndex на столбцах, например. [0, 1, 3]. Промежуточные строки, которые не указаны, будут пропущены (например, 2 в этом примере пропускается). Обратите внимание, что этот параметр игнорирует закомментированные строки и пустые строки, если skip_blank_lines=True, поэтому header=0 обозначает первую строку данных, а не первую строку файла.

namesПоследовательность Hashable, опционально

Последовательность меток столбцов для применения. Если файл содержит строку заголовка, то следует явно передать header=0 для переопределения имён столбцов. Дубликаты в этом списке не допускаются.

index_colHashable, Sequence of Hashable или False, опционально

Столбец(цы) для использования в качестве метки(ок) строк, обозначаемые либо метками столбцов, либо индексами столбцов. Если задана последовательность меток или индексов, MultiIndex будет сформирован для меток строк.

Примечание: index_col=False можно использовать для принуждения pandas к не использовать первый столбец в качестве индекса, например, когда у вас есть некорректный файл с разделителями в конце каждой строки.

usecolsПоследовательность Hashable или Callable, опционально

Подмножество столбцов для выбора, обозначенное либо метками столбцов, либо индексами столбцов. Если списокоподобный, все элементы должны быть либо позиционными (т.е. целочисленными индексами в столбцах документа), либо строками, соответствующими именам столбцов, предоставленным либо пользователем в names или выведен из строк заголовка документа. Если names указаны, строка(и) заголовка документа не учитываются. Например, допустимый список usecols параметр будет [0, 1, 2] или ['foo', 'bar', 'baz']. Порядок элементов игнорируется, поэтому usecols=[0, 1] то же самое, что [1, 0]. Для создания экземпляра DataFrame из data с сохранением порядка элементов используйте pd.read_csv(data, usecols=['foo', 'bar'])[['foo', 'bar']] для столбцов в ['foo', 'bar'] порядок или pd.read_csv(data, usecols=['foo', 'bar'])[['bar', 'foo']] для ['bar', 'foo'] порядок.

Если передана вызываемая функция, она будет оценена по именам столбцов, возвращая имена, где вызываемая функция оценивается как True. Примером допустимого вызываемого аргумента может быть lambda x: x.upper() in ['AAA', 'BBB', 'DDD']. Использование этого параметра значительно ускоряет время разбора и снижает использование памяти.

dtypedtype или словарь {Hashabledtype}, опционально

Тип(ы) данных для применения ко всему набору данных или отдельным столбцам. Например, {'a': np.float64, 'b': np.int32, 'c': 'Int64'} Используйте str или object вместе с подходящими na_values настройки для сохранения и не интерпретации dtype. Если converters указаны, они будут применены ВМЕСТО dtype преобразование.

Добавлено в версии 1.5.0: Поддержка defaultdict был добавлен. Укажите defaultdict в качестве входных данных, где значение по умолчанию определяет dtype столбцов, которые не указаны явно.

движок{'c', 'python', 'pyarrow'}, опционально

Движок парсера для использования. Движки C и pyarrow быстрее, в то время как движок python в настоящее время более полнофункционален. Многопоточность в настоящее время поддерживается только движком pyarrow.

Добавлено в версии 1.4.0: Движок 'pyarrow' был добавлен как экспериментальный движок, и некоторые функции не поддерживаются или могут работать некорректно с этим движком.

конвертерысловарь {HashableCallable}, optional

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

true_valuesсписок, необязательный

Значения, которые следует считать как True в дополнение к вариантам 'True' без учёта регистра.

false_valuesсписок, необязательный

Значения, которые следует считать как False в дополнение к вариантам без учёта регистра 'False'.

skipinitialspacebool, по умолчанию False

Пропускать пробелы после разделителя.

skiprowsint, список int или Callable, необязательно

Номера строк для пропуска (0-индексированные) или количество строк для пропуска (int) в начале файла.

Если передана функция, она будет выполнена для индексов строк, возвращая True если строку следует пропустить и False в противном случае. Примером допустимого вызываемого аргумента может быть lambda x: x in [0, 2].

skipfooterint, по умолчанию 0

Количество строк в конце файла для пропуска (Не поддерживается с engine='c').

nrowsint, необязательный

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

na_valuesHashable, Iterable of Hashable или dict of {HashableIterable}, необязательный

Дополнительные строки для распознавания как NA/NaN. Если dict передается, специфичный для каждого столбца NA значения. По умолчанию следующие значения интерпретируются как NaN: " "

keep_default_nabool, по умолчанию True

Включать ли значения по умолчанию NaN значения при разборе данных. В зависимости от того, является ли na_values если передано, поведение следующее:

  • Если keep_default_na является True, и na_values указаны, na_values добавляется к стандартному NaN значения, используемые для парсинга.

  • Если keep_default_na является True, и na_values не указаны, только значение по умолчанию NaN значения используются для парсинга.

  • Если keep_default_na является False, и na_values указаны, только NaN указанные значения na_values используются для разбора.

  • Если keep_default_na является False, и na_values не указаны, никакие строки не будут разбираться как NaN.

Обратите внимание, что если na_filter передается как False, keep_default_na и na_values параметры будут проигнорированы.

na_filterbool, по умолчанию True

Обнаружение маркеров пропущенных значений (пустые строки и значение na_values). В данных без каких-либо NA значения, передача na_filter=False может улучшить производительность чтения большого файла.

verbosebool, по умолчанию False

Указывает количество NA значения, помещенные в нечисловые столбцы.

Устарело с версии 2.2.0.

skip_blank_linesbool, по умолчанию True

Если True, пропускать пустые строки вместо интерпретации как NaN значения.

parse_datesbool, список Hashable, список списков или dict из {Hashablelist}, по умолчанию False

Поведение следующее:

  • bool. Если True -> попробовать разобрать индекс. Примечание: Автоматически устанавливается в True if date_format или date_parser аргументы были переданы.

  • list of int или имена. Например, если [1, 2, 3] -> попробуйте разобрать столбцы 1, 2, 3 как отдельные столбцы дат.

  • list of list. Например. Если [[1, 3]] -> объединить столбцы 1 и 3 и обработать как один столбец даты. Значения объединяются с пробелом перед обработкой.

  • dict, например, {'foo' : [1, 3]} -> разобрать столбцы 1, 3 как дату и назвать результат 'foo'. Значения объединяются с пробелом перед разбором.

Если столбец или индекс не могут быть представлены как массив datetime, скажем, из-за неразбираемого значения или смеси часовых поясов, столбец или индекс будет возвращён неизменённым как object тип данных. Для нестандартных datetime парсинг, используйте to_datetime() после read_csv().

Примечание: Существует быстрый путь для дат в формате iso8601.

infer_datetime_formatbool, по умолчанию False

Если True и parse_dates включено, pandas попытается определить формат datetime строки в столбцах, и если это можно вывести, переключиться на более быстрый метод их разбора. В некоторых случаях это может увеличить скорость разбора в 5-10 раз.

Устарело с версии 2.0.0: Строгая версия этого аргумента теперь используется по умолчанию, передача его не имеет эффекта.

keep_date_colbool, по умолчанию False

Если True и parse_dates указывает на объединение нескольких столбцов с сохранением исходных столбцов.

date_parserCallable, опционально

Функция для преобразования последовательности строковых столбцов в массив datetime экземпляров. По умолчанию используется dateutil.parser.parser для выполнения преобразования. pandas попытается вызвать date_parser тремя различными способами, переходя к следующему, если возникает исключение: 1) Передать один или несколько массивов (как определено parse_dates) в качестве аргументов; 2) объединить (по строкам) строковые значения из столбцов, определенных parse_dates в один массив и передать его; и 3) вызвать date_parser один раз для каждой строки, используя одну или несколько строк (соответствующих столбцам, определённым parse_dates) в качестве аргументов.

Устарело с версии 2.0.0: Используйте date_format вместо этого, или считать как object и затем применить to_datetime() по мере необходимости.

date_formatstr или dict столбца -> формат, опционально

Формат для использования при разборе дат в сочетании с parse_dates. Формат strftime для разбора времени, например, "%d/%m/%Y". См. документация strftime для получения дополнительной информации о вариантах, хотя обратите внимание, что "%f" будет парсить вплоть до наносекунд. Вы также можете передать:

  • “ISO8601”, для разбора любого ISO8601

    строковое представление времени (не обязательно в точно таком же формате);

  • “mixed”, чтобы определить формат для каждого элемента отдельно. Это рискованно,

    и, вероятно, следует использовать это вместе с dayfirst.

Добавлено в версии 2.0.0.

dayfirstbool, по умолчанию False

Даты в формате ДД/ММ, международный и европейский формат.

cache_datesbool, по умолчанию True

Если True, используйте кэш уникальных, преобразованных дат для применения datetime преобразование. Может значительно ускорить парсинг повторяющихся строк дат, особенно с часовыми поясами.

итераторbool, по умолчанию False

Возвращает TextFileReader объект для итерации или получения блоков с get_chunk().

chunksizeint, необязательный

Количество строк для чтения из файла за один чанк. Передача значения приведёт к тому, что функция вернёт TextFileReader объект для итерации. См. Документация по инструментам ввода-вывода для получения дополнительной информации о iterator и chunksize.

compressionстрока или словарь, по умолчанию ‘infer’

Для динамической распаковки данных на диске. Если 'infer' и 'filepath_or_buffer' является путем, то определить сжатие по следующим расширениям: '.gz', '.bz2', '.zip', '.xz', '.zst', '.tar', '.tar.gz', '.tar.xz' или '.tar.bz2' (в противном случае без сжатия). Если используется 'zip' или 'tar', ZIP-файл должен содержать только один файл данных для чтения. Установить в None для отсутствия распаковки. Также может быть словарём с ключом 'method' установить в одно из {'zip', 'gzip', 'bz2', 'zstd', 'xz', 'tar'} и другие пары ключ-значение передаются в zipfile.ZipFile, gzip.GzipFile, bz2.BZ2File, zstandard.ZstdDecompressor, lzma.LZMAFile или tarfile.TarFile, соответственно. В качестве примера, следующее может быть передано для декомпрессии Zstandard с использованием пользовательского словаря сжатия: compression={'method': 'zstd', 'dict_data': my_compression_dict}.

Добавлено в версии 1.5.0: Добавлена поддержка для .tar файлы.

Изменено в версии 1.4.0: Поддержка Zstandard.

тысячиstr (длина 1), опционально

Символ, используемый в качестве разделителя тысяч в числовых значениях.

десятичныйstr (длина 1), по умолчанию ‘.’

Символ, распознаваемый как десятичная точка (например, используйте ',' для европейских данных).

lineterminatorstr (длина 1), опционально

Символ, используемый для обозначения разрыва строки. Действителен только с парсером C.

quotecharstr (длина 1), опционально

Символ, используемый для обозначения начала и конца цитируемого элемента. Цитируемые элементы могут включать delimiter и оно будет проигнорировано.

quoting{0 или csv.QUOTE_MINIMAL, 1 или csv.QUOTE_ALL, 2 или csv.QUOTE_NONNUMERIC, 3 или csv.QUOTE_NONE}, по умолчанию csv.QUOTE_MINIMAL

Управление поведением кавычек для поля на csv.QUOTE_* константы. По умолчанию csv.QUOTE_MINIMAL (т.е., 0), что подразумевает, что только поля, содержащие специальные символы, заключаются в кавычки (например, символы, определенные в quotechar, delimiter, или lineterminator.

двойные кавычкиbool, по умолчанию True

Когда quotechar указан и quoting не является QUOTE_NONE, указывает, интерпретировать ли два последовательных quotechar элементы ВНУТРИ поля как единый quotechar элемент.

escapecharstr (длина 1), опционально

Символ, используемый для экранирования других символов.

комментарийstr (длина 1), опционально

Символ, указывающий, что остаток строки не должен быть обработан. Если найден в начале строки, строка будет полностью проигнорирована. Этот параметр должен быть одним символом. Как и пустые строки (пока skip_blank_lines=True), полностью закомментированные строки игнорируются параметром header но не skiprows. Например, если comment='#', парсинг #empty\na,b,c\n1,2,3 с header=0 приведёт к 'a,b,c' обрабатывается как заголовок.

кодировкаstr, опционально, по умолчанию 'utf-8'

Кодировка для использования UTF при чтении/записи (например, 'utf-8'). Список стандартных кодировок Python .

encoding_errorsstr, необязательный, по умолчанию 'strict'

Как обрабатываются ошибки кодировки. Список возможных значений .

Добавлено в версии 1.3.0.

диалектstr или csv.Dialect, опционально

Если предоставлен, этот параметр переопределит значения (по умолчанию или нет) для следующих параметров: delimiter, doublequote, escapechar, skipinitialspace, quotechar, и quoting. Если необходимо переопределить значения, ParserWarning будет выдано. См. csv.Dialect документация для получения дополнительных сведений.

on_bad_lines{‘error’, ‘warn’, ‘skip’} или Callable, по умолчанию ‘error’

Определяет, что делать при обнаружении плохой строки (строки со слишком большим количеством полей). Допустимые значения:

  • 'error', вызвать исключение при обнаружении некорректной строки.

  • 'warn', выдать предупреждение при обнаружении плохой строки и пропустить эту строку.

  • 'skip', пропускать некорректные строки без вызова исключения или предупреждения при их обнаружении.

Добавлено в версии 1.3.0.

Добавлено в версии 1.4.0:

  • Вызываемый объект, функция с сигнатурой (bad_line: list[str]) -> list[str] | None которая будет обрабатывать одну некорректную строку. bad_line представляет собой список строк, разделённых sep. Если функция возвращает Noneплохая строка будет проигнорирована. Если функция возвращает новый list строк с большим количеством элементов, чем ожидалось, ParserWarning будет выдаваться при удалении лишних элементов. Поддерживается только когда engine='python'

Изменено в версии 2.2.0:

delim_whitespacebool, по умолчанию False

Определяет, учитывать ли пробелы (например, ' ' или '\t') будет использоваться как sep разделитель. Эквивалентно установке sep='\s+'. Если эта опция установлена в True, ничего не должно передаваться для delimiter параметр.

Устарело с версии 2.2.0: Используйте sep="\s+" вместо этого.

low_memorybool, по умолчанию True

Внутренняя обработка файла частями, что приводит к меньшему использованию памяти при парсинге, но возможно смешанное определение типов. Чтобы гарантировать отсутствие смешанных типов, установите False, или укажите тип с помощью dtype параметр. Обратите внимание, что весь файл читается в один DataFrame в любом случае, используйте chunksize или iterator параметр для возврата данных частями. (Действительно только с парсером C).

memory_mapbool, по умолчанию False

Если указан путь к файлу для filepath_or_buffer, отобразить файловый объект непосредственно в память и получать доступ к данным напрямую оттуда. Использование этой опции может улучшить производительность, поскольку больше нет накладных расходов на ввод-вывод.

float_precision{‘high’, ‘legacy’, ‘round_trip’}, опционально

Указывает, какой конвертер должен использовать C-движок для значений с плавающей точкой. Доступные опции: None или 'high' для обычного преобразователя, 'legacy' для оригинального конвертера pandas с более низкой точностью, и 'round_trip' для конвертера кругового обхода.

storage_optionsdict, optional

Дополнительные параметры, которые имеют смысл для конкретного соединения с хранилищем, например, хост, порт, имя пользователя, пароль и т.д. Для HTTP(S) URL пары ключ-значение передаются в urllib.request.Request в качестве параметров заголовка. Для других URL-адресов (например, начинающихся с "s3://" и "gcs://") пары ключ-значение передаются fsspec.open. Пожалуйста, смотрите fsspec и urllib для получения дополнительной информации, а для дополнительных примеров по опциям хранения см. здесь.

dtype_backend{'numpy_nullable', 'pyarrow'}, по умолчанию 'numpy_nullable'

Тип данных бэкенда, примененный к результирующему DataFrame (все еще экспериментальная). Поведение следующее:

  • "numpy_nullable": возвращает поддерживаемый нуллифицируемым типом данных DataFrame (по умолчанию).

  • "pyarrow": возвращает nullable на основе pyarrow ArrowDtype DataFrame.

Добавлено в версии 2.0.

Возвращает:
DataFrame или TextFileReader

Файл значений, разделенных запятыми (csv), возвращается как двумерная структура данных с помеченными осями.

Смотрите также

DataFrame.to_csv

Запись DataFrame в файл значений, разделенных запятыми (csv).

read_table

Чтение файла с общими разделителями в DataFrame.

read_fwf

Прочитать таблицу строк фиксированной ширины в DataFrame.

Примеры

>>> pd.read_csv('data.csv')