pandas.read_excel#
-
pandas.read_excel(io, sheet_name=0, *, header=0, names=None, index_col=None, usecols=None, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, parse_dates=False, date_parser=
, date_format=None, thousands=None, decimal='.', comment=None, skipfooter=0, storage_options=None, dtype_backend= , engine_kwargs=None)[источник]# Прочитать файл Excel в
pandasDataFrame.Поддерживает xls, xlsx, Отладка C-расширений, xlsb, odf, ods и odt расширения файлов, читаемые из локальной файловой системы или URL. Поддерживает опцию чтения одного листа или списка листов.
- Параметры:
- iostr, bytes, ExcelFile, xlrd.Book, объект пути или файлоподобный объект
Допустим любой корректный строковый путь. Строка может быть URL. Допустимые схемы URL включают http, ftp, s3 и file. Для file URL ожидается хост. Локальный файл может быть:
file://localhost/path/to/table.xlsx.Если вы хотите передать объект пути, pandas принимает любой
os.PathLike.Под файлоподобным объектом мы подразумеваем объекты с
read()метод, такой как файловый дескриптор (например, через встроенную функциюopenфункция) илиStringIO.Устарело с версии 2.1.0: Передача байтовых строк устарела. Для чтения из байтовой строки оберните её в
BytesIOобъект.- sheet_namestr, int, list или None, по умолчанию 0
Строки используются для названий листов. Целые числа используются для позиций листов с нулевой индексацией (листы диаграмм не учитываются в позиции листа). Списки строк/целых чисел используются для запроса нескольких листов. Укажите
Noneдля получения всех рабочих листов.Доступные варианты:
По умолчанию
0: 1-й лист как DataFrame1: 2-й лист как DataFrame"Sheet1": Загрузить лист с именем "Sheet1"[0, 1, "Sheet5"]: Загрузить первый, второй и лист с именем "Sheet5" как словарь DataFrameNone: Все рабочие листы.
- headerint, список int, по умолчанию 0
Строка (с индексом 0) для использования в качестве меток столбцов разобранного DataFrame. Если передан список целых чисел, эти позиции строк будут объединены в
MultiIndex. Используйте None, если заголовка нет.- namesмассивоподобный, по умолчанию None
Список имен столбцов для использования. Если файл не содержит строки заголовка, тогда следует явно передать header=None.
- index_colint, str, list of int, default None
Столбец (с индексом 0) для использования в качестве меток строк DataFrame. Передайте None, если такого столбца нет. Если передаётся список, эти столбцы будут объединены в
MultiIndex. Если подмножество данных выбрано сusecols, index_col основан на подмножестве.Пропущенные значения будут заполнены вперед, чтобы обеспечить двустороннюю совместимость с
to_excelдляmerged_cells=True. Чтобы избежать заполнения пропущенных значений вперёд, используйтеset_indexпосле чтения данных вместоindex_col.- usecolsстрока, список или вызываемый объект, по умолчанию None
Если None, то разобрать все столбцы.
Если строка, то указывает разделенный запятыми список букв столбцов Excel и диапазонов столбцов (например, “A:E” или “A,C,E:F”). Диапазоны включают обе стороны.
Если список целых чисел, то указывает список номеров столбцов для разбора (с нулевой индексацией).
Если список строк, то указывает список имён столбцов для разбора.
Если вызываемый объект, то оцените каждое имя столбца по нему и проанализируйте столбец, если вызываемый объект возвращает
True.
Возвращает подмножество столбцов в соответствии с описанным выше поведением.
- dtypeИмя типа или словарь столбец -> тип, по умолчанию None
Тип данных для данных или столбцов. Например, {'a': np.float64, 'b': np.int32} Используйте
objectчтобы сохранить данные как хранящиеся в Excel и не интерпретировать dtype, что обязательно приведёт кobjectтипом данных. Если указаны преобразователи, они будут применены ВМЕСТО преобразования типа данных. Если вы используетеNone, он будет выводить тип данных каждого столбца на основе данных.- движок{‘openpyxl’, ‘calamine’, ‘odf’, ‘pyxlsb’, ‘xlrd’}, по умолчанию None
Если io не является буфером или путём, это должно быть установлено для идентификации io. Совместимость движков:
openpyxlподдерживает более новые форматы файлов Excel.calamineподдерживает форматы файлов Excel (.xls, .xlsx, .xlsm, .xlsb) и OpenDocument (.ods).odfподдерживает форматы файлов OpenDocument (.odf, .ods, .odt).pyxlsbподдерживает двоичные файлы Excel.xlrdподдерживает старые файлы Excel (.xls).
Когда
engine=None, следующая логика будет использоваться для определения движка:Если
path_or_bufferявляется форматом OpenDocument (.odf, .ods, .odt), тогда odf будет использоваться.В противном случае, если
path_or_bufferявляется форматом xls,xlrdбудет использоваться.В противном случае, если
path_or_bufferимеет формат xlsb,pyxlsbбудет использоваться.В противном случае
openpyxlбудет использоваться.
- конвертерыdict, по умолчанию None
Словарь функций для преобразования значений в определенных столбцах. Ключами могут быть либо целые числа, либо метки столбцов, значениями — функции, принимающие один входной аргумент (содержимое ячейки Excel) и возвращающие преобразованное содержимое.
- true_valuesсписок, по умолчанию None
Значения, которые следует считать истинными.
- false_valuesсписок, по умолчанию None
Значения, которые следует считать False.
- skiprowslist-like, int или callable, необязательный
Номера строк для пропуска (0-индексированные) или количество строк для пропуска (int) в начале файла. Если передаётся вызываемый объект, вызываемая функция будет оценена по индексам строк, возвращая True, если строку следует пропустить, и False в противном случае. Пример допустимого вызываемого аргумента:
lambda x: x in [0, 2].- nrowsint, по умолчанию None
Количество строк для разбора.
- na_valuesскаляр, строка, список или словарь, по умолчанию None
Дополнительные строки, распознаваемые как NA/NaN. Если передан словарь, специфичные NA-значения для каждого столбца. По умолчанию следующие значения интерпретируются как NaN: ‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’, ‘-NaN’, ‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘
’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘None’, ‘n/a’, ‘nan’, ‘null’. - 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указаны, только указанные значения NaNna_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, размещённых в нечисловых столбцах.
- parse_datesbool, list-like, или dict, по умолчанию False
Поведение следующее:
bool. Если True -> попытаться разобрать индекс.listиз int или имен. Например, если [1, 2, 3] -> попытаться разобрать столбцы 1, 2, 3 как отдельные столбцы дат.listсписков. Например: Если [[1, 3]] -> объединить столбцы 1 и 3 и обработать как один столбец даты.dict, например, {'foo' : [1, 3]} -> обработать столбцы 1, 3 как дату и назвать результат 'foo'
Если столбец или индекс содержит неразбираемую дату, весь столбец или индекс будет возвращен неизмененным как тип данных object. Если вы не хотите разбирать некоторые ячейки как даты, просто измените их тип в Excel на "Текст". Для нестандартного разбора даты используйте
pd.to_datetimeпослеpd.read_excel.Примечание: Существует быстрый путь для дат в формате iso8601.
- date_parserфункция, необязательный
Функция для преобразования последовательности строковых столбцов в массив экземпляров 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 столбец -> формат, по умолчанию
None Если используется вместе с
parse_dates, будет анализировать даты в соответствии с этим форматом. Для более сложных случаев, пожалуйста, читайте какobjectи затем применитьto_datetime()по мере необходимости.Добавлено в версии 2.0.0.
- тысячиstr, по умолчанию None
Разделитель тысяч для парсинга строковых столбцов в числовые. Обратите внимание, что этот параметр необходим только для столбцов, хранящихся как TEXT в Excel, любые числовые столбцы будут автоматически распарсены, независимо от формата отображения.
- десятичныйstr, default ‘.’
Символ, распознаваемый как десятичная точка для парсинга строковых столбцов в числовые. Обратите внимание, что этот параметр необходим только для столбцов, хранящихся как TEXT в Excel, любые числовые столбцы будут автоматически распарсены, независимо от формата отображения (например, используйте ',' для европейских данных).
Добавлено в версии 1.4.0.
- комментарийstr, по умолчанию None
Комментирует оставшуюся часть строки. Передайте символ или символы в этот аргумент, чтобы указать комментарии во входном файле. Любые данные между строкой комментария и концом текущей строки игнорируются.
- skipfooterint, по умолчанию 0
Строки в конце для пропуска (0-индексированные).
- 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 на основе pyarrowArrowDtypeDataFrame.
Добавлено в версии 2.0.
- engine_kwargsdict, optional
Произвольные ключевые аргументы, передаваемые движку Excel.
- Возвращает:
- DataFrame или словарь DataFrames
DataFrame из переданного файла Excel. См. примечания в аргументе sheet_name для получения дополнительной информации о том, когда возвращается словарь DataFrame.
Смотрите также
DataFrame.to_excelЗапись DataFrame в файл Excel.
DataFrame.to_csvЗапись DataFrame в файл значений, разделенных запятыми (csv).
read_csvЧтение файла значений, разделенных запятыми (csv), в DataFrame.
read_fwfПрочитать таблицу строк фиксированной ширины в DataFrame.
Примечания
Для конкретной информации о методах, используемых для каждого движка Excel, обратитесь к pandas руководство пользователя
Примеры
Файл можно прочитать, используя имя файла в виде строки или открытый файловый объект:
>>> pd.read_excel('tmp.xlsx', index_col=0) Name Value 0 string1 1 1 string2 2 2 #Comment 3
>>> pd.read_excel(open('tmp.xlsx', 'rb'), ... sheet_name='Sheet3') Unnamed: 0 Name Value 0 0 string1 1 1 1 string2 2 2 2 #Comment 3
Индекс и заголовок могут быть указаны через index_col и header аргументы
>>> pd.read_excel('tmp.xlsx', index_col=None, header=None) 0 1 2 0 NaN Name Value 1 0.0 string1 1 2 1.0 string2 2 3 2.0 #Comment 3
Типы столбцов определяются автоматически, но могут быть явно указаны
>>> pd.read_excel('tmp.xlsx', index_col=0, ... dtype={'Name': str, 'Value': float}) Name Value 0 string1 1.0 1 string2 2.0 2 #Comment 3.0
Значения True, False и NA, а также разделители тысяч имеют значения по умолчанию, но могут быть явно указаны. Укажите нужные значения в виде строк или списков строк!
>>> pd.read_excel('tmp.xlsx', index_col=0, ... na_values=['string1', 'string2']) Name Value 0 NaN 1 1 NaN 2 2 #Comment 3
Строки комментариев во входном файле Excel можно пропустить с помощью
commentkwarg.>>> pd.read_excel('tmp.xlsx', index_col=0, comment='#') Name Value 0 string1 1.0 1 string2 2.0 2 None NaN