pandas.read_csv
- pandas.read_csv(filepath_or_buffer, *, sep=_NoDefault.no_default, delimiter=None, header='infer', names=_NoDefault.no_default, 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=_NoDefault.no_default, skip_blank_lines=True, parse_dates=None, infer_datetime_format=_NoDefault.no_default, keep_date_col=_NoDefault.no_default, date_parser=_NoDefault.no_default, 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=_NoDefault.no_default, low_memory=True, memory_map=False, float_precision=None, storage_options=None, dtype_backend=_NoDefault.no_default)[source]
-
Чтение файла с разделителем запятых (csv) в DataFrame.
Также поддерживает необязательное итеративное чтение или разбивку файла на куски.
Дополнительную помощь можно найти в онлайн-документации по Инструментам ввода-вывода.
- Параметры:
-
- filepath_or_buffer:строка, объект пути или объект-поток
-
Приемлемый любой допустимый путь в виде строки. Строка может быть URL-адресом. Допустимые схемы URL включают http, ftp, s3, gs и file. Для URL-адресов файлов ожидается хост. Локальный файл может быть: file://localhost/path/to/table.csv.
Если вы хотите передать объект пути, pandas принимает любой
os.PathLike.Под объектом-потоком мы понимаем объекты с методом
read(), например, дескриптор файла (например, с помощью встроенной функцииopen) илиStringIO. - sep:строка, по умолчанию ‘,’
-
Символ или регулярное выражение, используемое в качестве разделителя. Если
sep=None, движок C не может автоматически определить разделитель, но движок Python может, что означает, что последний будет использован и автоматически обнаружит разделитель только из первой корректной строки файла с помощью встроенного инструмента анализа Pandas,csv.Sniffer. Кроме того, разделители длиной более 1 символа и отличные от'\s+'будут интерпретироваться как регулярные выражения и также будут принудительно использовать движок Python. Обратите внимание, что разделители-регулярные выражения могут игнорировать данные в кавычках. Пример регулярного выражения:'\r\t'. - delimiter:строка, необязательно
-
Псевдоним для
sep. - header:целое число, последовательность целых чисел, ‘infer’ или None, по умолчанию ‘infer’
-
Номер(а) строки, содержащей метки столбцов и обозначающей начало данных (индексация с нуля). Поведение по умолчанию - вывести имена столбцов: если не
namesпереданы, поведение идентичноheader=0, и имена столбцов выводятся из первой строки файла, если имена столбцов явно переданы вnames, то поведение идентичноheader=None. Явно передайтеheader=0для возможности заменить существующие имена. Заголовок может быть списком целых чисел, которые указывают расположения строк дляMultiIndexпо столбцам, например,[0, 1, 3]. Промежуточные строки, которые не указаны, будут пропущены (например, 2 в этом примере пропущена). Обратите внимание, что этот параметр игнорирует строки с комментариями и пустые строки, еслиskip_blank_lines=True, поэтомуheader=0обозначает первую строку данных, а не первую строку файла. - names:последовательность хешируемых объектов, необязательно
-
Последовательность меток столбцов для применения. Если файл содержит заголовок, то необходимо явно передать
header=0для переопределения имён столбцов. Повторы в этом списке недопустимы. - index_col:хешируемый объект, последовательность хешируемых объектов или False, необязательно
-
Столбец(ы) для использования в качестве метки(ок) строки, обозначенный либо метками столбцов, либо индексами столбцов. Если задана последовательность меток или индексов,
MultiIndexбудет сформирована для меток строк.Примечание:
index_col=Falseможет быть использован для принудительного отказа pandas от использования первого столбца в качестве индекса, например, при наличии поврежденного файла с разделителями в конце каждой строки. - usecols:последовательность хешируемых объектов или вызываемая функция, необязательно
-
Подмножество столбцов для выбора, обозначенных либо метками столбцов, либо индексами столбцов. Если список, все элементы должны быть позиционными (т.е. целочисленными индексами в столбцы документа) или строками, соответствующими именам столбцов, предоставленными пользователем в
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']. Использование этого параметра приводит к значительно более быстрому времени обработки и меньшему использованию памяти. - dtype:тип данных или словарь {хешируемый объект: тип данных}, необязательно
-
Тип(ы) данных, применяемый к всему набору данных или отдельным столбцам. Например,
{'a': np.float64, 'b': np.int32, 'c': 'Int64'}Используйтеstrилиobjectвместе с подходящимиna_valuesнастройками, чтобы сохранить и не интерпретироватьdtype. Еслиconvertersуказаны, они будут применены ВМЕСТО преобразованияdtype.Введено в версии 1.5.0: Поддержка
defaultdictбыла добавлена. Укажитеdefaultdictв качестве входных данных, где значение по умолчанию определяетdtypeстолбцов, которые не указаны явно. - engine:{‘c’, ‘python’, ‘pyarrow’}, необязательно
-
Движок парсера для использования. Движки C и pyarrow быстрее, а движок python в настоящее время более функционален. Многопоточность в настоящее время поддерживается только движком pyarrow.
Введено в версии 1.4.0: Движок ‘pyarrow’ был добавлен как экспериментальный движок, и некоторые функции не поддерживаются или могут работать неправильно с этим движком.
- converters:словарь {хешируемый объект: вызываемая функция}, необязательно
-
Функции для преобразования значений в указанных столбцах. Ключи могут быть либо метками столбцов, либо индексами столбцов.
- true_values:список, необязательно
-
Значения, рассматриваемые как
Trueв дополнение к вариантам значений ‘True’ с учетом регистра. - false_values:список, необязательно
-
Значения, рассматриваемые как
Falseв дополнение к вариантам значений ‘False’ с учетом регистра. - skipinitialspace:булево, по умолчанию False
-
Пропустить пробелы после разделителя.
- skiprows:целое число, список целых чисел или вызываемая функция, необязательно
-
Номера строк для пропуска (индексация с нуля) или количество строк для пропуска (
int) в начале файла.Если вызываемая функция, вызываемая функция будет оцениваться по индексам строк, возвращая
Trueесли строка должна быть пропущена иFalseв противном случае. Пример допустимого вызываемого аргументаlambda x: x in [0, 2]. - skipfooter:целое число, по умолчанию 0
-
Количество строк в конце файла для пропуска (не поддерживается с
engine='c'). - nrows:целое число, необязательно
-
Количество строк файла для чтения. Полезно для чтения фрагментов больших файлов.
- na_values:хешируемый объект, итерируемый объект или словарь {хешируемый объект: итерируемый объект}, необязательно
-
Дополнительные строки, распознаваемые как
NA/NaN. Еслиdictпередан, специфические значенияNAдля каждого столбца. По умолчанию следующие значения интерпретируются какNaN: “ “, “#N/A”, “#N/A N/A”, “#NA”, “-1.#IND”, “-1.#QNAN”, “-NaN”, “-nan”, “1.#IND”, “1.#QNAN”, “<NA>”, “N/A”, “NA”, “NULL”, “NaN”, “None”, “n/a”, “nan”, “null “. - keep_default_na:булево, по умолчанию 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_filter:булево, по умолчанию True
-
Обнаружить маркеры пропущенных значений (пустые строки и значение
na_values). При данных без каких-либо значенийNA, передачаna_filter=Falseможет улучшить производительность чтения большого файла. - verbose:булево, по умолчанию False
-
Указывает количество
NAзначений, помещенных в столбцы, не являющиеся числовыми.Устарело начиная с версии 2.2.0.
- skip_blank_lines:булево, по умолчанию True
-
Если
True, пропускать пустые строки, а не интерпретировать какNaNзначения. - parse_dates:булево, список хешируемых объектов, список списков или словарь {хешируемый объект: список}, по умолчанию False
-
Поведение следующее:
bool. ЕслиTrue-> попытаться разобрать индекс. Примечание: Автоматически устанавливается вTrue, если были переданы аргументыdate_formatилиdate_parser.listстолбцовintили имён. Например, если[1, 2, 3]-> попытаться разобрать столбцы 1, 2, 3 каждый как отдельный столбец даты.listстолбцовlist. Например, если[[1, 3]]-> объединить столбцы 1 и 3 и разобрать как один столбец даты. Значения объединяются пробелом перед разбором.dict, например,{'foo' : [1, 3]}-> разобрать столбцы 1, 3 как дату и назвать результат ‘foo’. Значения объединяются пробелом перед разбором.
Если столбец или индекс не может быть представлен как массив
datetime, например, из-за неразборчивого значения или смешения часовых поясов, столбец или индекс будут возвращены без изменений как тип данныхobject. Для нестандартного разбораdatetime, используйтеto_datetime()послеread_csv().Примечание: Существует быстрый путь для дат в формате iso8601.
- infer_datetime_format:bool, default False
-
Если
Trueиparse_datesвключены, pandas попытается определить форматdatetimeстрок в столбцах и, если это возможно, переключится на более быстрый метод их разбора. В некоторых случаях это может увеличить скорость разбора в 5-10 раз.Устарело начиная с версии 2.0.0: Строгая версия этого аргумента теперь является стандартной; передача его не имеет эффекта.
- keep_date_col:bool, default False
-
Если
Trueиparse_datesопределяют объединение нескольких столбцов, сохраните исходные столбцы. - date_parser:Callable, optional
-
Функция для преобразования последовательности столбцов строк в массив экземпляров
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_format:str or dict of column -> format, optional
-
Формат для разбора дат при совместном использовании с
parse_dates. Формат strftime для разбора времени, например,"%d/%m/%Y". См. документацию strftime для получения дополнительной информации об вариантах, хотя обратите внимание, что"%f"будет разбирать значения до наносекунд. Также можно передать:-
- “ISO8601”, для разбора любой ISO8601
-
строки времени (не обязательно в точно таком же формате);
-
- “mixed”, для определения формата для каждого элемента по отдельности. Это рискованно,
-
и вы, вероятно, должны использовать его вместе с dayfirst.
Введено в версии 2.0.0.
-
- dayfirst:bool, default False
-
Даты в формате ДД/ММ, международный и европейский формат.
- cache_dates:bool, default True
-
Если
True, используйте кэш уникальных, преобразованных дат для применения преобразованияdatetime. Может значительно ускорить разбор, когда анализируются дублирующиеся строки дат, особенно с смещениями часовых поясов. - iterator:bool, default False
-
Возвращает объект
TextFileReaderдля итерации или получения фрагментов сget_chunk(). - chunksize:int, optional
-
Количество строк, считываемых из файла за фрагмент. Передача значения приведет к возврату функции объекта
TextFileReaderдля итерации. См. документацию IO Tools для получения дополнительной информации оiteratorиchunksize. - compression:str or dict, default ‘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.
- thousands:str (length 1), optional
-
Символ, используемый в качестве разделителя тысяч в числовых значениях.
- decimal:str (length 1), default ‘.’
-
Символ, распознаваемый как десятичная точка (например, используйте ‘,’ для европейских данных).
- lineterminator:str (length 1), optional
-
Символ, используемый для обозначения конца строки. Действителен только для парсера C.
- quotechar:str (length 1), optional
-
Символ, используемый для обозначения начала и конца цитируемого элемента. Цитаты могут включать
delimiterи будут проигнорированы. - quoting:{0 or csv.QUOTE_MINIMAL, 1 or csv.QUOTE_ALL, 2 or csv.QUOTE_NONNUMERIC, 3 or csv.QUOTE_NONE}, default csv.QUOTE_MINIMAL
-
Управление поведением цитирования полей согласно
csv.QUOTE_*константам. По умолчанию значениеcsv.QUOTE_MINIMAL(т.е. 0), что подразумевает, что цитируются только поля, содержащие специальные символы (например, символы, определённые вquotechar,delimiter, илиlineterminator. - doublequote:bool, default True
-
Когда
quotecharуказано иquotingнеQUOTE_NONE, указывает, интерпретируются ли два последовательныхquotecharэлемента ВНУТРИ поля как одинquotecharэлемент. - escapechar:str (length 1), optional
-
Символ, используемый для экранирования других символов.
- comment:str (length 1), optional
-
Символ, указывающий, что остаток строки не должен анализироваться. Если он находится в начале строки, строка будет полностью пропущена. Этот параметр должен быть одиночным символом. Как пустые строки (пока
skip_blank_lines=True), полностью комментируемые строки игнорируются параметромheader, но неskiprows. Например, еслиcomment='#', разбор#empty\na,b,c\n1,2,3сheader=0приведет к тому, что'a,b,c'будет интерпретироваться как заголовок. - encoding:str, optional, default ‘utf-8’
-
Кодировка для использования с UTF при чтении/записи (например,
'utf-8'). Список стандартных кодировок Python. - encoding_errors:str, optional, default ‘strict’
-
Как обрабатываются ошибки кодирования. Список возможных значений.
Введено в версии 1.3.0.
- dialect:str or csv.Dialect, optional
-
Если указан, этот параметр переопределит значения (по умолчанию или нет) для следующих параметров:
delimiter,doublequote,escapechar,skipinitialspace,quotechar, иquoting. Если необходимо переопределить значения, будет выведеноParserWarning. См.csv.Dialectдокументацию для получения дополнительной информации. - on_bad_lines:{‘error’, ‘warn’, ‘skip’} or Callable, default ‘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:
Вызываемый объект, функция со сигнатурой, как описано в документации pyarrow, при
engine='pyarrow'
- delim_whitespace:bool, default False
-
Указывает, будут ли пробелы (например,
' 'или'\t') использоваться в качестве разделителяsep. Эквивалентно установкеsep='\s+'. Если этот параметр установлен вTrue, для параметраdelimiterничего не должно быть передано.Устарело начиная с версии 2.2.0: Используйте
sep="\s+"вместо этого. - low_memory:bool, default True
-
Внутренне обрабатывает файл частями, что приводит к меньшему использованию памяти при разборе, но возможно к смешанному выводу типов. Чтобы избежать смешанных типов, установите
False, или укажите тип с параметромdtype. Обратите внимание, что весь файл считывается в однуDataFrameнезависимо, используйте параметрchunksizeилиiteratorдля возврата данных частями. (Действительно только с C-парсером). - memory_map:bool, default False
-
Если для
filepath_or_bufferуказан путь к файлу, отображает объект файла непосредственно в памяти и получает доступ к данным непосредственно оттуда. Использование этого параметра может повысить производительность, так как больше нет накладных расходов на ввод-вывод. - float_precision:{‘high’, ‘legacy’, ‘round_trip’}, optional
-
Указывает, какой конвертер C-движок должен использовать для чисел с плавающей точкой. Доступные варианты:
Noneили'high'для обычного конвертера,'legacy'для исходного конвертера pandas с меньшей точностью и'round_trip'для конвертера с обратной совместимостью. - storage_options:dict, optional
-
Дополнительные параметры, которые имеют смысл для определённого подключения к хранилищу, например, хост, порт, имя пользователя, пароль и т. д. Для HTTP(S) URL-адресов пары ключ-значение передаются в
urllib.request.Requestкак параметры заголовка. Для других URL-адресов (например, начинающихся с “s3://” и “gcs://”) пары ключ-значение передаются вfsspec.open. Подробности см. вfsspecиurllib, а примеры параметров хранилища см. здесь. - dtype_backend:{‘numpy_nullable’, ‘pyarrow’}, default ‘numpy_nullable’
-
Тип данных, применяемый к результирующей
DataFrame(ещё экспериментально). Поведение следующее:"numpy_nullable": возвращаетDataFrameс поддержкой типов с возможностью NULL (по умолчанию)."pyarrow": возвращаетArrowDtypeDataFrame с поддержкой NULL, основанный на pyarrow.
Добавлена в версии 2.0.
-
- Возвращаемое значение:
-
- DataFrame или TextFileReader
-
Файл с разделителями (csv) возвращается как двумерная структура данных с метками осей.
См. также
DataFrame.to_csv-
Запись DataFrame в файл с разделителями (csv).
read_table-
Чтение общего файла с разделителями в DataFrame.
read_fwf-
Чтение таблицы фиксированной ширины в DataFrame.
Примеры
>>> pd.read_csv('data.csv')
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.read_csv.html