pandas.read_csv
- pandas.read_csv(filepath_or_buffer, *, sep=<no_default>, delimiter=None, header='infer', names=<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=<no_default>, skip_blank_lines=True, parse_dates=None, infer_datetime_format=<no_default>, keep_date_col=<no_default>, date_parser=<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=<no_default>, low_memory=True, memory_map=False, float_precision=None, storage_options=None, dtype_backend=<no_default>)[исходный код]
-
Прочитать файл со значениями, разделёнными запятыми (csv), в DataFrame.
Также поддерживается необязательная итерация по файлу или его разбиение на фрагменты.
Дополнительную справочную информацию можно найти в онлайн-документации по теме инструментов ввода-вывода.
- Параметры:
-
- filepath_or_buffer:str, объект пути или файловый объект
-
Допускается любая допустимая строка пути. Строка может быть URL-адресом. Допустимые схемы URL включают http, ftp, s3, gs и file. Для URL файлов требуется указать хост. Локальный файл может иметь вид: file://localhost/path/to/table.csv.
Если вы хотите передать объект пути, pandas принимает любой
os.PathLike.Под файловым объектом понимаются объекты с методом
read(), например файловый дескриптор (например, полученный с помощью встроенной функцииopen) илиStringIO. - sep:str, по умолчанию ‘,’
-
Символ или шаблон регулярного выражения, используемый в качестве разделителя. Если
sep=None, движок C не может автоматически определить разделитель, но это может сделать движок разбора Python; в таком случае будет использован последний, который автоматически определит разделитель только по первой допустимой строке файла с помощью встроенного в Python инструмента распознавания,csv.Sniffer. Кроме того, разделители длиной более 1 символа и отличные от'\s+'будут интерпретироваться как регулярные выражения и также приведут к использованию движка разбора Python. Обратите внимание, что при использовании разделителей-регулярных выражений кавычки могут игнорироваться. Пример регулярного выражения:'\r\t'. - delimiter:str, необязательно
-
Псевдоним для
sep. - header:int, последовательность int, ‘infer’ или None, по умолчанию ‘infer’
-
Номер строки (или номера строк), содержащей метки столбцов и обозначающей начало данных (нумерация начинается с нуля). По умолчанию имена столбцов определяются автоматически: если
namesне переданы, поведение идентичноheader=0, а имена столбцов определяются по первой строке файла; если имена столбцов явно переданы вnames, поведение идентичноheader=None. Явно передайтеheader=0, чтобы заменить существующие имена. В качестве значения header можно указать список целых чисел, задающих расположение строк дляMultiIndexстолбцов, например[0, 1, 3]. Промежуточные строки, не указанные в списке, будут пропущены (например, в этом примере будет пропущена строка 2). Обратите внимание, что этот параметр игнорирует строки с комментариями и пустые строки, еслиskip_blank_lines=True, поэтомуheader=0обозначает первую строку данных, а не первую строку файла. - names:последовательность Hashable, необязательно
-
Последовательность меток столбцов, которые нужно применить. Если файл содержит строку заголовка, для переопределения имён столбцов необходимо явно передать
header=0. Дубликаты в этом списке не допускаются. - index_col:Hashable, последовательность 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']. Использование этого параметра значительно ускоряет разбор и снижает потребление памяти. - dtype:dtype или dict вида {Hashable: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:dict вида {Hashable:Callable}, необязательно
-
Функции для преобразования значений в указанных столбцах. Ключами могут быть метки столбцов или индексы столбцов.
- true_values:list, необязательно
-
Значения, которые следует считать
True, помимо вариантов ‘True’ без учёта регистра. - false_values:list, необязательно
-
Значения, которые следует считать
False, помимо вариантов ‘False’ без учёта регистра. - skipinitialspace:bool, по умолчанию False
-
Пропускать пробелы после разделителя.
- skiprows:int, список int или Callable, необязательно
-
Номера строк, которые нужно пропустить (нумерация начинается с нуля), или количество строк, которые нужно пропустить (
int) в начале файла.Если передана вызываемая функция, она будет применена к индексам строк и вернёт
True, если строку нужно пропустить, иFalseв противном случае. Пример допустимого аргумента-функции:lambda x: x in [0, 2]. - skipfooter:int, по умолчанию 0
-
Количество строк в конце файла, которые нужно пропустить (не поддерживается с
engine='c'). - nrows:int, необязательно
-
Количество строк файла для чтения. Удобно при чтении частей больших файлов.
- na_values:Hashable, Iterable из Hashable или dict вида {Hashable:Iterable}, необязательно
-
Дополнительные строки, которые следует распознавать как
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:bool, по умолчанию 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, при разборе используются только указанные значенияNaNna_values.Если
keep_default_naравноFalseиna_valuesне указаны, никакие строки не будут разбираться какNaN.
Обратите внимание: если
na_filterпередан какFalse, параметрыkeep_default_naиna_valuesбудут проигнорированы. - na_filter:bool, по умолчанию True
-
Определять маркеры пропущенных значений (пустые строки и значение
na_values). Если в данных нет значенийNA, передачаna_filter=Falseможет повысить производительность при чтении большого файла. - verbose:bool, по умолчанию False
-
Указывает количество значений
NA, помещённых в нечисловые столбцы.Устарело с версии 2.2.0.
- skip_blank_lines:bool, по умолчанию True
-
Если
True, пропускать пустые строки, а не интерпретировать их как значенияNaN. - parse_dates:bool, список Hashable, список списков или dict вида {Hashable:list}, по умолчанию 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, по умолчанию False
-
Если
Trueи включёнparse_dates, pandas попытается определить формат строкdatetimeв столбцах и, если это удастся, переключится на более быстрый способ их разбора. В некоторых случаях скорость разбора может увеличиться в 5–10 раз.Устарело с версии 2.0.0: Теперь по умолчанию используется строгая версия этого аргумента; его передача не оказывает эффекта.
- keep_date_col:bool, по умолчанию False
-
Если
Trueиparse_datesзадаёт объединение нескольких столбцов, сохранить исходные столбцы. - date_parser:Callable, необязательно
-
Функция для преобразования последовательности строковых столбцов в массив экземпляров
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 или dict вида столбец -> формат, необязательно
-
Формат разбора дат при использовании вместе с
parse_dates. Формат strftime для разбора времени, например"%d/%m/%Y". Дополнительную информацию о допустимых вариантах см. в документации strftime, однако обратите внимание, что"%f"выполняет разбор вплоть до наносекунд. Также можно передать:-
- “ISO8601” — для разбора любой строки времени формата ISO8601
-
(не обязательно в точно таком же формате);
-
- “mixed” — для определения формата каждого элемента отдельно. Это рискованно,
-
и, вероятно, этот вариант следует использовать вместе с dayfirst.
Добавлено в версии 2.0.0.
-
- dayfirst:bool, по умолчанию False
-
Даты в формате ДД/ММ, международном и европейском формате.
- cache_dates:bool, по умолчанию True
-
Если
True, использовать кэш уникальных преобразованных дат для применения преобразованияdatetime. Может значительно ускорить разбор повторяющихся строк с датами, особенно строк со смещениями часовых поясов. - iterator:bool, по умолчанию False
-
Возвращать объект
TextFileReaderдля итерации или получения фрагментов с помощьюget_chunk(). - chunksize:int, необязательно
-
Количество строк файла для чтения в каждом фрагменте. Передача значения приведёт к тому, что функция вернёт объект
TextFileReaderдля итерации. Дополнительную информацию оiteratorиchunksizeсм. в документации по инструментам ввода-вывода. - compression:str или dict, по умолчанию ‘infer’
-
Для распаковки данных с диска на лету. Если задано ‘infer’ и ‘filepath_or_buffer’ является значением, похожим на путь, тип сжатия определяется по следующим расширениям: ‘.gz’, ‘.bz2’, ‘.zip’, ‘.xz’, ‘.zst’, ‘.tar’, ‘.tar.gz’, ‘.tar.xz’ или ‘.tar.bz2’ (в противном случае сжатие не используется). При использовании ‘zip’ или ‘tar’ ZIP-архив должен содержать только один файл данных для чтения. Установите значение
None, чтобы отключить распаковку. Также можно передать dict с ключом'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 (длина 1), необязательно
-
Символ, используемый в качестве разделителя тысяч в числовых значениях.
- decimal:str (длина 1), по умолчанию ‘.’
-
Символ, распознаваемый как десятичный разделитель (например, для европейских данных используйте ‘,’).
- lineterminator:str (длина 1), необязательно
-
Символ, обозначающий конец строки. Допустим только с парсером C.
- quotechar:str (длина 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. - doublequote:bool, по умолчанию True
-
Если задан
quotechar, аquotingне равенQUOTE_NONE, указывает, следует ли интерпретировать два последовательных элементаquotecharВНУТРИ поля как один элементquotechar. - escapechar:str (длина 1), необязательно
-
Символ, используемый для экранирования других символов.
- comment:str (длина 1), необязательно
-
Символ, обозначающий, что остаток строки не следует разбирать. Если он найден в начале строки, вся строка будет проигнорирована. Этот параметр должен содержать один символ. Как и пустые строки (если
skip_blank_lines=True), полностью закомментированные строки игнорируются параметромheader, но не параметромskiprows. Например, еслиcomment='#', разбор#empty\na,b,c\n1,2,3сheader=0приведёт к тому, что'a,b,c'будет считаться заголовком. - encoding:str, необязательно, по умолчанию ‘utf-8’
-
Кодировка UTF для чтения/записи (например,
'utf-8'). Список стандартных кодировок Python . - encoding_errors:str, необязательно, по умолчанию ‘strict’
-
Способ обработки ошибок кодирования. Список возможных значений .
Добавлено в версии 1.3.0.
- dialect: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:
Вызываемая функция с сигнатурой, описанной в документации pyarrow, при
engine='pyarrow'
- delim_whitespace:bool, по умолчанию False
-
Указывает, следует ли использовать пробельные символы (например,
' 'или'\t') в качестве разделителяsep. Эквивалентно установкеsep='\s+'. Если для этого параметра задано значениеTrue, параметрdelimiterне следует использовать.Устарело с версии 2.2.0: Используйте вместо этого
sep="\s+". - low_memory:bool, по умолчанию True
-
Обрабатывать файл внутри программы фрагментами, снижая потребление памяти при разборе, но, возможно, получая смешанные типы при их определении. Чтобы исключить смешанные типы, установите
Falseили укажите тип с помощью параметраdtype. Обратите внимание, что весь файл в любом случае считывается в один объектDataFrame; для возврата данных фрагментами используйте параметрchunksizeилиiterator. (Допустимо только с парсером C.) - memory_map:bool, по умолчанию False
-
Если для
filepath_or_bufferуказан путь к файлу, отобразить файловый объект непосредственно в памяти и обращаться к данным напрямую. Использование этого параметра может повысить производительность, поскольку исключаются издержки ввода-вывода. - float_precision:{‘high’, ‘legacy’, ‘round_trip’}, необязательно
-
Указывает, какой преобразователь движок C должен использовать для значений с плавающей точкой. Варианты
Noneили'high'соответствуют обычному преобразователю,'legacy'— исходному преобразователю pandas с меньшей точностью, а'round_trip'— преобразователю с обратным преобразованием. - storage_options:dict, необязательно
-
Дополнительные параметры, подходящие для конкретного подключения к хранилищу, например хост, порт, имя пользователя, пароль и т. д. Для URL HTTP(S) пары ключ-значение передаются в
urllib.request.Requestкак параметры заголовка. Для других URL (например, начинающихся с “s3://” или “gcs://”) пары ключ-значение передаются вfsspec.open. Дополнительную информацию см. вfsspecиurllib; другие примеры параметров хранилища приведены здесь. - dtype_backend:{‘numpy_nullable’, ‘pyarrow’}, по умолчанию ‘numpy_nullable’
-
Тип данных внутреннего механизма, применяемый к результирующему объекту
DataFrame(всё ещё экспериментальный). Поведение следующее:"numpy_nullable": возвращаетDataFrameс поддержкой допускающих пропуски типов (по умолчанию)."pyarrow": возвращает DataFrame с nullable-типами на основе pyarrow,ArrowDtype.
Добавлено в версии 2.0.
- Возвращает:
-
- DataFrame или TextFileReader
-
Файл со значениями, разделёнными запятыми (csv), возвращается в виде двумерной структуры данных с именованными осями.
См. также
DataFrame.to_csv-
Записать DataFrame в файл со значениями, разделёнными запятыми (csv).
read_table-
Прочитать файл с произвольным разделителем в DataFrame.
read_fwf-
Прочитать таблицу из строк фиксированной ширины в DataFrame.
Примеры
>>> pd.read_csv('data.csv')
© 2008–2011, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
© 2011–2025, Open source contributors
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.3.0/reference/api/pandas.read_csv.html