Розробники часто потребують експортувати 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

Ці дві бібліотеки дозволять вам конвертувати Pandas DataFrames у файли 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

Ще один простий спосіб - спочатку зберегти ваш Pandas DataFrame у форматі 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. Build sample data for the demo.
  2. Call the df.tojson(orient='records') to convert.
  3. Ініціалізуйте об’єкт класу Workbook() та отримайте перший аркуш.
  4. Увімкніть arrayastable для правильного імпорту таблиць.
  5. Викличте метод JsonUtility.importdata() для імпорту JSON у комірки аркуша.
  6. Запишіть фінальний файл у .xlsx.

Наступний приклад коду показує, як конвертувати Pandas DF в 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)

# Convert pandas DataFrame to JSON
json_string = df.to_json(orient='records')

workbook = Workbook()

# Отримайте перший аркуш.
worksheet = workbook.worksheets[0]

# Get the cells
cells = worksheet.cells

options = JsonLayoutOptions()
unit = JsonUtility()

# Процеси як таблиця
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

Ви можете записати більше ніж один Pandas DataFrame в один файл 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

        # Write column headers
       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)

# Створіть два DataFrames
df1 = pd.DataFrame({
    "Name": ["Alice", "Bob"],
    "Age": [25, 30]
})

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

# Write to 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 без обмежень. Запросіть безкоштовну тимчасову ліцензію на license page.Застосуйте її у своєму коді, щоб усунути обмеження оцінки. Протестуйте кожну функцію, включаючи DF в Excel, графіки, формули та великі файли.

PD to Excel: Безкоштовні ресурси

Будь ласка, використовуйте ці ресурси, щоб покращити свої знання та зрозуміння.

Висновок

Ви навчилися різним способам експортувати DataFrame Pandas в Excel з Aspose.Cells for Python. Ви можете зберегти DataFrame безпосередньо, використати CSV, використати JSON або записати кілька DataFrame в один файл. Кожен метод є простим, швидким і надійним. Якщо ви шукаєте розширені функції Excel поза межами Pandas, Aspose.Cells - правильний вибір. Спробуйте це у вашому наступному проекті та перейдіть з Pandas в Excel з повним контролем.

Якщо у вас є запитання, відвідайте наш безкоштовний форум підтримки.Ми будемо раді допомогти вам.

Дивитись також