Разработчикам часто нужно экспортировать DataFrame Pandas в Excel. Excel является отличным инструментом для обмена и анализа отчетов. Python с Pandas делает это простым, но использование Aspose.Cells for Python дает вам больше контроля. Вы можете конвертировать DataFrame в Excel напрямую, через CSV, через JSON или даже экспортировать несколько DataFrame в один файл. В этой статье вы узнаете, как конвертировать DataFrame Pandas в Excel четырьмя методами шаг за шагом.

Почему использовать Aspose.Cells для Pandas в Excel

Pandas имеет встроенную функцию toexcel(). Она работает для базовых экспортов, но ограничена по функциям. Aspose.Cells for Python является одной из лучших библиотек Python для Excel для разработчиков и предоставляет полный движок Excel. Она позволяет вам сохранять DataFrames в Excel с высокой надежностью. Вы также можете работать с диаграммами, формулами, форматированием и большими файлами.

Эта статья покажет вам, как экспортировать DataFrame Pandas в Excel, используя Aspose.Cells разными способами.

Перед тем как начать, убедитесь, что у вас установлено следующее:

  1. Скачать Aspose.Cells for Python из релизов или установить с помощью pip:
pip install aspose-cells-python
  1. Pandas – установить с помощью pip:
pip install pandas

Эти две библиотеки позволят вам конвертировать DataFrame’ы Pandas в файлы Excel.

Метод 1: Преобразуйте DataFrame в Excel напрямую с помощью Aspose.Cells

Наиболее распространенная задача - экспортировать DataFrame Pandas в Excel напрямую. С помощью Aspose.Cells вы можете создать рабочую книгу, импортировать значения DataFrame и сохранить его в виде файла Excel.

Следуйте шагам ниже, чтобы преобразовать DataFrame в Excel:

  1. Build a sample dataset.
  2. Инициализируйте пустую книгу Excel.
  3. Получите доступ к первому листу в рабочей книге.
  4. Вставьте имена столбцов DataFrame в ячейки Excel.
  5. Пройдите через каждую строку в DataFrame и поместите значения в ячейки.
  6. Экспортируйте финальную книгу в файл Excel.

Следующий пример кода показывает, как напрямую конвертировать Pandas в Excel:

import aspose.cells as ac
import pandas as pd

# Шаг 1: Создайте образец DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 32, 18, 47],
    'city': ['New York', 'Paris', 'London', 'Berlin']
}
df = pd.DataFrame(data)

# Шаг 2: Создайте новую книгу
wb = ac.Workbook()

# Шаг 3: Получите первый лист рабочего документа
worksheet = wb.worksheets[0]

# Шаг 4: Получите коллекцию ячеек
cells = worksheet.cells

# Шаг 5: Запишите имена столбцов DataFrame в Excel
rowindex = 0
colindex = 0
for column in df:
    cell = cells.get(rowindex, colindex)
    cell.put_value(df[column].name)
    colindex += 1

# Шаг 6: Запишите строки DataFrame в Excel
for index, row in df.iterrows():
    rowindex += 1
    colindex = 0
    cell = cells.get(rowindex, colindex)
    cell.put_value(row["name"])
    colindex += 1
    cell = cells.get(rowindex, colindex)
    cell.put_value(row["age"])
    colindex += 1
    cell = cells.get(rowindex, colindex)
    cell.put_value(row["city"])
    colindex += 1

# Шаг 7: Сохраните DataFrame в Excel
wb.save("direct_df_to_excel.xlsx")
Преобразуйте DataFrame в Excel напрямую с помощью Aspose.Cells

Конвертируйте DataFrame в Excel напрямую с помощью Aspose.Cells.

Этот код сохраняет DataFrame Pandas в Excel по заданному местоположению. Вы можете изменить путь, чтобы он соответствовал вашей системе.

Этот метод дает вам полный контроль над тем, как данные Pandas DataFrame записываются в Excel. Это самый прямой способ конвертировать DF в Excel с использованием Aspose.Cells.

Метод 2: Конвертировать DataFrame в Excel через CSV

Еще один простой способ - сначала сохранить ваш DataFrame Pandas в CSV, а затем преобразовать этот CSV файл в Excel с помощью Aspose.Cells. Это полезно, когда ваш процесс уже генерирует CSV-вывод, и вам все еще нужен чистый файл Excel.

Пожалуйста, выполните следующие шаги, чтобы конвертировать DataFrame в Excel через CSV:

  1. Build sample data.
  2. Сохраните DataFrame в формате CSV, используя метод tocsv() из Pandas.
  3. Откройте CSV в виде рабочей книги.
  4. Экспортируйте книгу в файл .xlsx.

Следующий пример кода показывает, как конвертировать Pandas в Excel через CSV:

import aspose.cells as ac
import pandas as pd

# Шаг 1: Создайте пример DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 32, 18, 47],
    'city': ['New York', 'Paris', 'London', 'Berlin']
}
df = pd.DataFrame(data)

# Шаг 2: Сохраните DataFrame в формате CSV
df.to_csv("temp.csv", index=False)

# Шаг 3: Загрузите CSV файл с помощью Aspose.Cells
wb = ac.Workbook("temp.csv")

# Шаг 4: Сохранить как файл Excel
wb.save("df_via_csv.xlsx")

Этот метод сначала создает файл CSV, а затем конвертирует его в Excel. Он гарантирует, что ваше преобразование Pandas в Excel будет работать, даже если ваш процесс уже зависит от файлов CSV.

Используйте этот метод, когда вы хотите быстро перейти от CSV к Excel, сохраняя гибкость Pandas и Aspose.Cells.

Метод 3: Преобразование DataFrame в Excel через JSON

Многие API используют JSON. Вы также можете передать JSON в Aspose.Cells для создания листа Excel. Этот метод сначала преобразует DataFrame Pandas в JSON, а затем загружает этот JSON в Excel в виде таблицы. Это сохраняет ваш экспорт pandas в Excel чистым и надежным. Это также полезно, когда вам нужно строгий контроль над заголовками и типами данных.

Пожалуйста, следуйте приведенным ниже шагам:

  1. Создайте образцы данных для демо.
  2. Вызовите df.tojson(orient='records'), чтобы выполнить преобразование.
  3. Инициализируйте объект класса Workbook() и получите первый лист.
  4. Включите arrayastable для правильного импорта таблиц.
  5. Вызовите метод JsonUtility.importdata(), чтобы импортировать JSON в ячейки рабочего листа.
  6. Запишите конечный файл в .xlsx.

Следующий пример кода демонстрирует, как преобразовать DataFrame Pandas в Excel через JSON:

import pandas as pd
from aspose.cells.utility import JsonUtility, JsonLayoutOptions
from aspose.cells import Workbook, Worksheet, Cells

# Создайте пример DataFrame в pandas
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'San Francisco', 'Los Angeles']}
        	
df = pd.DataFrame(data)

# Преобразуйте pandas DataFrame в JSON
json_string = df.to_json(orient='records')

workbook = Workbook()

# Получите первый листок.
worksheet = workbook.worksheets[0]

# Получите ячейки
cells = worksheet.cells

options = JsonLayoutOptions()
unit = JsonUtility()

# Processes as table
options.array_as_table = True

# Импортируйте данные JSON в электронную таблицу, начиная с строки 0, столбца 0
unit.import_data(json_string, cells, 0, 0, options)

# Сохранить как файл Excel
workbook.save("df_via_json.xlsx")

orient='records' создает список объектов. Каждый объект сопоставляет ключи с именами столбцов. arrayastable=True указывает Aspose.Cells обрабатывать массив как полноценную таблицу с заголовками. Импортер записывает значения в ячейки, начиная с A1. Это обеспечивает предсказуемую компоновку в Excel.

Метод 4: Экспорт нескольких DataFrame в листы Excel

Вы можете записывать более одного DataFrame Pandas в один файл Excel. Каждый DataFrame помещается на свой собственный лист. Этот метод дает вам чистый экспорт pandas в Excel для отчетов и сгруппированных таблиц.

Пожалуйста, выполните следующий шаг:

  1. Создайте функцию, которая записывает несколько DataFrame в несколько листов.
  2. Инициализируйте новую книгу.
  3. Добавьте лист для каждого DataFrame и назовите его из sheetnames.
  4. Поставьте названия столбцов в первой строке.
  5. Переберите кортежи DataFrame и запишите значения ячеек.
  6. Экспортируйте в XLSX с помощью метода workbook.save().

Следующий пример кода показывает, как экспортировать несколько DataFrame Pandas в листы Excel:

import pandas as pd
from aspose.cells import Workbook, WorksheetCollection, SaveFormat

def write_multiple_dataframes_to_excel(dataframes, sheet_names, output_path):
    """
    Write multiple DataFrames to multiple sheets in an Excel file
    :param dataframes: List of pandas.DataFrame
    :param sheet_names: List of sheet names (same length as dataframes)
    :param output_path: Output Excel file path
    """
    # Создайте пустую книгу.
    workbook = Workbook()

    # Дополнительно: удалите пустой лист по умолчанию, если он вам не нужен
    # workbook.worksheets.removeat(0)

   for df, name in zip(dataframes, sheet_names):
        # Добавить новый лист
        worksheet = workbook.worksheets.add(name)
        cells = worksheet.cells

        # Напишите заголовки столбцов
       for col_idx, col_name in enumerate(df.columns):
            cells.get(0, col_idx).put_value(str(col_name))

        # Write row data
       for row_idx, row in enumerate(df.itertuples(index=False), start=1):
           for col_idx, value in enumerate(row):
                cells.get(row_idx, col_idx).put_value(value)

    # Сохранить как файл Excel
    workbook.save(output_path, SaveFormat.XLSX)

# Создайте два DataFrame
df1 = pd.DataFrame({
    "Name": ["Alice", "Bob"],
    "Age": [25, 30]
})

df2 = pd.DataFrame({
    "Product": ["Book", "Pen"],
    "Price": [10.5, 1.99]
})

# Запишите в Excel
write_multiple_dataframes_to_excel(
    dataframes=[df1, df2],
    sheet_names=["People", "Products"],
    output_path="MultiDataFrame.xlsx"
)
Экспорт нескольких DataFrame Pandas в листы Excel с помощью Aspose.Cells

Экспортируйте несколько DataFrame Pandas в листы Excel с помощью Aspose.Cells.

Функция сопоставляет каждый DataFrame с именем листа. Она записывает заголовки в строку 0 и данные с строки 1. Aspose.Cells записывает значения в ячейки с явной типизацией. Итоговый файл XLSX сохраняет ваши таблицы ясными и готовыми к совместному использованию.

Получите бесплатную лицензию

Оцените Aspose.Cells for Python через .NET без ограничений. Запросите бесплатную временную лицензию на странице лицензий.Примените её в вашем коде, чтобы удалить ограничения на оценку. Протестируйте все функции, включая DF в Excel, графики, формулы и большие файлы.

PD to Excel: Бесплатные ресурсы

Пожалуйста, используйте эти ресурсы, чтобы углубить свои знания и улучшить свое понимание.

Заключение

Вы научились различным способам экспорта DataFrame Pandas в Excel с помощью Aspose.Cells for Python. Вы можете сохранить DataFrame непосредственно, использовать CSV, использовать JSON или записывать несколько DataFrame в один файл. Каждый метод прост, быстр и надежен. Если вы ищете расширенные функции Excel, выходящие за пределы Pandas, Aspose.Cells — правильный выбор. Попробуйте его в вашем следующем проекте и переходите от Pandas к Excel с полным контролем.

Если у вас есть вопросы, посетите наш free support forum.Мы будем рады помочь вам.

См. также