Добавить в корзинуПозвонить
Найти в Дзене

Сохранить датафрейм в эксель python

Сохранить DataFrame (таблицу данных) в файл Excel с помощью Python — это стандартная задача, которая чаще всего решается с помощью библиотеки Pandas. Pandas имеет встроенные методы для записи DataFrame в различные форматы, включая Excel. Сохранение DataFrame в Excel с помощью pandas Для этой операции вам понадобятся: Библиотека pandas: Для работы с DataFrame. Движок записи Excel: pandas не записывает Excel-файлы напрямую, а использует сторонние библиотеки. Самая распространенная и рекомендуемая — Openpyxl (для. xlsx файлов). 1. Установка необходимых библиотек Если у вас ещё нет pandas или openpyxl, установите их через pip: Bash Pip install pandas openpyxl 2. Основной способ: DataFrame. to_excel() Метод to_excel() объекта DataFrame позволяет сохранить его в файл Excel. Python Import pandas as pd # 1. Создаем пример DataFrame Data = { ‘Имя’: [‘Анна’, ‘Борис’, ‘Вера’, ‘Глеб’], ‘Возраст’: [28, 34, 22, 45], ‘Город’: [‘Москва’, ‘СПб’, ‘Казань’, ‘Екатеринбург’], ‘Доход’: [75000, 90000, 60000,

Сохранить DataFrame (таблицу данных) в файл Excel с помощью Python — это стандартная задача, которая чаще всего решается с помощью библиотеки Pandas. Pandas имеет встроенные методы для записи DataFrame в различные форматы, включая Excel.

Сохранение DataFrame в Excel с помощью pandas

Для этой операции вам понадобятся:

Библиотека pandas: Для работы с DataFrame. Движок записи Excel: pandas не записывает Excel-файлы напрямую, а использует сторонние библиотеки. Самая распространенная и рекомендуемая — Openpyxl (для. xlsx файлов).

1. Установка необходимых библиотек

Если у вас ещё нет pandas или openpyxl, установите их через pip:

Bash

Pip install pandas openpyxl

2. Основной способ: DataFrame. to_excel()

Метод to_excel() объекта DataFrame позволяет сохранить его в файл Excel.

Python

Import pandas as pd

# 1. Создаем пример DataFrame

Data = {

‘Имя’: [‘Анна’, ‘Борис’, ‘Вера’, ‘Глеб’],

‘Возраст’: [28, 34, 22, 45],

‘Город’: [‘Москва’, ‘СПб’, ‘Казань’, ‘Екатеринбург’],

‘Доход’: [75000, 90000, 60000, 110000]

}

Df = pd. DataFrame(data)

# 2. Указываем имя файла Excel, куда сохранять

Excel_file_name = "мой_датафрейм. xlsx"

# 3. Сохраняем DataFrame в Excel-файл

# index=False предотвращает запись индекса DataFrame как отдельного столбца в Excel

Df. to_excel(excel_file_name, index=False)

Print(f"DataFrame успешно сохранен в файл ‘{excel_file_name}’")

Откройте мой_датафрейм. xlsx, и вы увидите вашу таблицу данных.

3. Более продвинутые опции To_excel()

Метод to_excel() имеет множество полезных аргументов для более тонкой настройки сохранения:

Sheet_name: Имя листа, на который будет сохранён DataFrame. По умолчанию ‘Sheet1’. Index: True (по умолчанию) для записи индекса DataFrame как столбца, False для пропуска. Header: True (по умолчанию) для записи названий столбцов, False для пропуска. Startrow, Startcol: Начальные строка и столбец, с которых начнется запись данных в Excel. Полезно, если вы хотите оставить место для заголовков или другой информации. Freeze_panes: Кортеж (строка, столбец) для создания "закрепленных областей". Например, (1, 0) закрепит первую строку (строка с заголовками). Engine: Используемый движок записи. По умолчанию ‘openpyxl’ для. xlsx и ‘xlwt’ для. xls. Na_rep: Строка, которая будет использоваться для представления пропущенных значений (NaN).

Python

# Создаем DataFrame с пропущенными значениями

Data_nan = {

‘Продукт’: [‘Яблоко’, ‘Банан’, ‘Апельсин’, ‘Виноград’],

‘Цена’: [1.2, None, 0.8, 2.5],

‘Количество’: [100, 150, None, 200]

}

Df_nan = pd. DataFrame(data_nan)

Excel_file_name_advanced = "продвинутый_сохранение. xlsx"

Df_nan. to_excel(

excel_file_name_advanced,

sheet_name="Отчет по продуктам", # Имя листа

index=False, # Не записывать индекс

header=True, # Записать заголовки

startrow=2, # Начать запись с 3-й строки (индекс 2)

startcol=1, # Начать запись со 2-го столбца (индекс 1, столбец B)

na_rep="Н/Д", # Вместо NaN писать "Н/Д"

# freeze_panes=(3, 2) # Зафиксировать области (3-я строка, 2-й столбец)

)

Print(f"DataFrame с продвинутыми опциями успешно сохранен в файл ‘{excel_file_name_advanced}’")

4. Запись нескольких DataFrame на разные листы

Чтобы сохранить несколько DataFrame в один Excel-файл, но на разные листы, вам нужно создать объект ExcelWriter.

Python

Import pandas as pd

# Создаем два разных DataFrame

Df1 = pd. DataFrame({‘A’: [1, 2], ‘B’: [3, 4]})

Df2 = pd. DataFrame({‘X’: [‘foo’, ‘bar’], ‘Y’: [‘baz’, ‘qux’]})

Excel_file_name_multiple = "несколько_листов. xlsx"

With pd. ExcelWriter(excel_file_name_multiple, engine=’openpyxl’) as writer:

df1.to_excel(writer, sheet_name=’Данные_1′, index=False)

df2.to_excel(writer, sheet_name=’Данные_2′, index=False)

Print(f"Два DataFrame успешно сохранены на разные листы в файл ‘{excel_file_name_multiple}’")

5. Добавление данных к существующему файлу/листу (Осторожно!)

Метод to_excel() по умолчанию Перезаписывает существующий файл. Если вы хотите добавить данные на существующий лист или в существующий файл, это сложнее, и pandas не имеет встроенного метода append_to_excel().

Для добавления вам нужно:

Прочитать существующий файл Excel в DataFrame. Изменить или Добавить данные к этому DataFrame. Сохранить (перезаписать) весь DataFrame обратно в файл.

Или, если вы хотите добавить данные в существующий лист Без перезаписи других листов, вам понадобится ExcelWriter и openpyxl для чтения/записи:

Python

Import pandas as pd

From openpyxl import load_workbook

# Создаем файл с начальными данными, если его нет

Initial_file = "добавление_данных. xlsx"

Initial_df = pd. DataFrame({‘ИД’: [1, 2], ‘Статус’: [‘Новый’, ‘В работе’]})

Initial_df. to_excel(initial_file, sheet_name="Основной Отчет", index=False)

Initial_df. to_excel(initial_file, sheet_name="Архив", index=False, startrow=0) # Добавим второй лист

# Новый DataFrame, который нужно добавить

New_data_df = pd. DataFrame({‘ИД’: [3, 4], ‘Статус’: [‘Завершено’, ‘Ожидает’]})

# Загружаем существующую книгу

Book = load_workbook(initial_file)

# Создаем ExcelWriter, указывая существующую книгу

With pd. ExcelWriter(initial_file, engine=’openpyxl’) as writer:

writer. book = book # Привязываем writer к существующей книге

# Если листа нет, он будет создан. Если есть — будет перезаписан.

# Чтобы добавить к существующему листу, нужно сначала прочитать его,

# объединить данные и только потом сохранить

new_data_df. to_excel(writer, sheet_name=’Новые Данные’, index=False)

# Чтобы добавить к существующему листу "Основной Отчет":

# Сначала прочитайте существующие данные с листа

existing_df = pd. read_excel(initial_file, sheet_name=’Основной Отчет’)

# Объедините их с новыми

combined_df = pd. concat([existing_df, new_data_df], ignore_index=True)

# Сохраните объединенный DataFrame обратно на тот же лист, перезаписав его

combined_df. to_excel(writer, sheet_name=’Основной Отчет’, index=False)

writer. close() # Важно для сохранения изменений

Print(f"Данные успешно добавлены в файл ‘{initial_file}’ на новый лист и обновлен ‘Основной Отчет’.")

Этот пример показывает, как можно работать с существующими файлами, но будьте внимательны: прямое добавление строк в конец таблицы без перезаписи всего листа сложнее и обычно требует более низкоуровневой работы с openpyxl напрямую, а не через pandas. to_excel(). В большинстве случаев, если вам нужно только добавить данные, проще читать файл, добавлять строки к DataFrame, а затем перезаписывать весь файл.