Как прочитать несколько таблиц из файла .xls в Python? - PullRequest
0 голосов
/ 09 января 2019

Мне нужно прочитать несколько таблиц из листа в файле Excel с Python. Лист выглядит примерно так: enter image description here

Я хочу получить объект python, содержащий информацию в Firat_Table и такой же для Sencond_Table. Я попытался использовать pandas и Dataframe.iloc следующим образом:

import pandas as pd
xls = pd.ExcelFile('path_to_xls_file')
df = pd.read_excel(xls, "sheet_1")
# first table
df1 = df.iloc[2:12,0:6]

Но я не получил ожидаемые ячейки из First_Table. Я делаю что-то не так с диапазонами строк и столбцов? Обязательно ли указывать точные индексы строк и столбцов или есть более эффективный и элегантный способ сделать это?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Подход правильный, но может быть не оптимальным. Вы неправильно понимаете таблицу, потому что индексы неверны - согласно Вашему экрану df1 = df.iloc[1:12,1:6] должен выполнить работу.

Лучшим решением было бы установить header и usecols параметры для pd.read_excel()

заголовок : int, список целых чисел,

по умолчанию 0 Строка (с индексами 0), используемая для меток столбцов анализируемого Фрейма данных. Если передан список целых чисел , эти позиции строк будут объединены в MultiIndex.

Использовать Нет , если заголовка нет

usecols : int или list, по умолчанию None

Если Нет , то проанализировать все столбцы,

Если int , то указывает последний столбец для быть разобранным

Если список целых чисел , то указывает список номеров столбцов, которые должны быть проанализировано

Если строка, то указывает разделенный запятыми список столбцов Excel диапазон букв и столбцов (например, «A: E» или «A, C, E: F»). Диапазоны включительно с обеих сторон.

Получено с : https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html

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

панды read_excel нескольких таблиц на одном листе - дубликаты?

0 голосов
/ 09 января 2019

Используйте аргумент «usecols», чтобы выбрать столбцы, которые вы хотите прочитать из файла Excel. Панды будут выбирать строки соответственно.

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

Ниже приведен пример кода для вашей задачи

pd.read_excel(path, usecols=range(1,6), index=False)

Дополнительная информация в документации

...