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()