Maison >développement back-end >Tutoriel Python >Comment puis-je ajouter un DataFrame Pandas à une feuille Excel existante en Python sans écraser ?

Comment puis-je ajouter un DataFrame Pandas à une feuille Excel existante en Python sans écraser ?

DDD
DDDoriginal
2024-12-03 12:49:11572parcourir

How Can I Append a Pandas DataFrame to an Existing Excel Sheet in Python Without Overwriting?

Ajouter une feuille Excel existante avec une nouvelle trame de données à l'aide de Python Pandas

Problème :

Vous disposez d'un fichier Excel existant et d'un Cadre de données Pandas. Vous souhaitez ajouter le DataFrame à la fin de la feuille Excel existante sans l'écraser.

Solution :

Il existe deux approches principales pour ajouter des données à un Excel existant feuille utilisant Pandas :

Approche 1 : Utiliser ExcelWriter

import pandas as pd

df = pd.DataFrame(...)

with pd.ExcelWriter('existing_sheet.xlsx', mode='a', engine='openpyxl') as writer:
    df.to_excel(writer, sheet_name='Sheet1', header=False, index=False, startrow=writer.sheets['Sheet1'].max_row + 1)

Approche 2 : Utilisation d'Openpyxl et de Pandas

import pandas as pd
from openpyxl import load_workbook

df = pd.DataFrame(...)

# Load existing Excel workbook
book = load_workbook('existing_sheet.xlsx')
sheet = book['Sheet1']

# Find last row in existing Excel sheet
last_row = sheet.max_row

# Append DataFrame data to existing sheet starting from last row + 1
pd.DataFrame.to_excel(df, book, sheet_name='Sheet1', startrow=last_row + 1, index=False)

# Save changes to existing Excel file
book.save('existing_sheet.xlsx')

Conseils supplémentaires :

  • Si la feuille n'existe pas, Pandas créera automatiquement it.
  • Vous pouvez spécifier la ligne de départ pour l'ajout de données à l'aide du paramètre startrow.
  • Pour conserver les styles de cellules existants, définissez with_style=True dans la fonction copy_excel_cell_range lorsque vous utilisez l'approche Openpyxl et Pandas.
  • Pour les versions Pandas < 1.4.0, utilisez la fonction d'assistance dans l'exemple de code lié pour ajouter des données sans les écraser.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn