Поиск по сайту:

Pandas read_excel() — чтение файла Excel в Python


Мы можем использовать функцию read_excel() модуля pandas для чтения данных файла excel в объект DataFrame. Если вы посмотрите на лист Excel, это двухмерная таблица. Объект DataFrame также представляет двумерную табличную структуру данных.

1. Пример Pandas read_excel()

Допустим, у нас есть файл excel с двумя листами — «Сотрудники» и «Автомобили». Верхняя строка содержит заголовок таблицы.

Вот пример чтения данных листа «Сотрудники» и их печати.

import pandas

excel_data_df = pandas.read_excel('records.xlsx', sheet_name='Employees')

# print whole sheet data
print(excel_data_df)

Выход:

   EmpID    EmpName EmpRole
0      1     Pankaj     CEO
1      2  David Lee  Editor
2      3   Lisa Ray  Author

  • Первый параметр — это имя файла Excel.
  • Параметр sheet_name определяет лист, который будет считан из файла Excel.
  • Когда мы печатаем объект DataFrame, на выходе получается двумерная таблица. Это похоже на записи листа Excel.

2. Список заголовков столбцов листа Excel

Мы можем получить список заголовков столбцов, используя свойство columns объекта dataframe.

print(excel_data_df.columns.ravel())

Выход:

['EmpID' 'EmpName' 'EmpRole']

3. Печать данных столбца

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

print(excel_data_df['EmpName'].tolist())

Выход:

['Pankaj', 'David Lee', 'Lisa Ray']

4. Пример использования Pandas read_excel()

Мы можем указать имена столбцов для чтения из файла Excel. Это полезно, когда вас интересуют только несколько столбцов листа Excel.

import pandas

excel_data_df = pandas.read_excel('records.xlsx', sheet_name='Cars', usecols=['Car Name', 'Car Price'])
print(excel_data_df)

Выход:

         Car Name      Car Price
0      Honda City     20,000 USD
1  Bugatti Chiron  3 Million USD
2     Ferrari 458   2,30,000 USD

5. Чтение файла Excel без строки заголовка

Если на листе Excel нет строки заголовка, передайте значение параметра заголовка как None.

excel_data_df = pandas.read_excel('records.xlsx', sheet_name='Numbers', header=None)

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

6. Лист Excel в Dict, CSV и JSON

Объект DataFrame имеет различные служебные методы для преобразования табличных данных в формат CSV или JSON.

excel_data_df = pandas.read_excel('records.xlsx', sheet_name='Cars', usecols=['Car Name', 'Car Price'])

print('Excel Sheet to Dict:', excel_data_df.to_dict(orient='record'))
print('Excel Sheet to JSON:', excel_data_df.to_json(orient='records'))
print('Excel Sheet to CSV:\n', excel_data_df.to_csv(index=False))

Выход:

Excel Sheet to Dict: [{'Car Name': 'Honda City', 'Car Price': '20,000 USD'}, {'Car Name': 'Bugatti Chiron', 'Car Price': '3 Million USD'}, {'Car Name': 'Ferrari 458', 'Car Price': '2,30,000 USD'}]
Excel Sheet to JSON: [{"Car Name":"Honda City","Car Price":"20,000 USD"},{"Car Name":"Bugatti Chiron","Car Price":"3 Million USD"},{"Car Name":"Ferrari 458","Car Price":"2,30,000 USD"}]
Excel Sheet to CSV:
 Car Name,Car Price
Honda City,"20,000 USD"
Bugatti Chiron,3 Million USD
Ferrari 458,"2,30,000 USD"

7. Ссылки

  • Документация по API pandas read_excel()