Bonjour à tous,
Je travaille actuellement sur un fichier Excel au format xlsx en utilisant Python. Mon objectif est de lire les données d'une feuille de calcul et de les écrire dans une feuille existante nommée 'data_12m'.
Cependant, je rencontre un problème : les données de la colonne 'Date' ne parviennent pas à être écrites dans cette feuille existante (DataFrame créé).
Je sollicite donc votre aide pour résoudre ce problème. Merci d'avance pour vos suggestions et réponses.
Ci-dessous se trouve ma fonction :
Code:def get_data_site_12m_xlsx(data_input, writer): df = pd.read_excel(data_input, sheet_name='Données 12mois', engine='openpyxl') print("Columns in original DataFrame:", df.columns) print("Head of original DataFrame:") print(df.head()) # Remplacement des noms de mois par les dates directement dans la colonne 'Date' month_mapping = { 'Janvier': '01/01/2023', 'Février': '01/02/2023', 'Mars': '01/03/2023', 'Avril': '01/04/2023', 'Mai': '01/05/2023', 'Juin': '01/06/2023', 'Juillet': '01/07/2023', 'Août': '01/08/2023', 'Septembre': '01/09/2023', 'Octobre': '01/10/2023', 'Novembre': '01/11/2023', 'Décembre': '01/12/2023' } # Colonnes pertinentes à conserver colonnes = ['Date', 'Energie consommées totale [kWh]', 'Energie Export JIRAMA [kWh]', 'Energie GE [kWh]', 'Energie Import JIRAMA [kWh]', 'Energie PV directement consommées [kWh]', 'Energie PV totale [kWh]', 'Indice de performance énergétique [%]', 'Ratio de performance [%]', 'Temps de fonctionnement GE [min]', 'Irradiation (Pyranomètre SR05-D1A3 13760) [W/m²]'] # Filtrage des colonnes pertinentes df = df[colonnes] # Remplacement des noms de mois par les dates dans la colonne 'Date' df['Date'] = df['Date'].replace(month_mapping) print("Head of DataFrame after month replacement:") print(df.head()) # Conversion de la colonne 'Date' en format datetime df['Date'] = pd.to_datetime(df['Date'], format='%d/%m/%Y', errors='coerce') print("Type of 'Date' column after conversion:", df['Date'].dtype) print("Head of DataFrame after date conversion:") print(df.head()) # Correction des formats de données df = df.apply(lambda x: x.astype(str).str.replace("'", "")) df = df.apply(lambda x: x.str.replace("/ ", "")) df = df.apply(lambda x: x.str.replace("x", "0")) df = df.replace('-', 0) df = df.apply(lambda x: pd.to_numeric(x.str.replace(',', '.'), errors='coerce')) print("Head of processed DataFrame:") print(df.head()) # Création du DataFrame pour exportation df_export = pd.DataFrame() df_export['Date'] = df['Date'] # Utilisation de la colonne 'Date' du DataFrame original df_export['PV consommée'] = df['Energie PV directement consommées [kWh]'] df_export['Production PV totale'] = df['Energie PV totale [kWh]'] df_export['Consommation totale'] = df['Energie consommées totale [kWh]'] df_export['Energie prelevee sur le réseau'] = df['Energie Import JIRAMA [kWh]'] df_export['Injection réseau'] = df['Energie Export JIRAMA [kWh]'] df_export['Production groupe électrogène'] = df['Energie GE [kWh]'] df_export['Durée de fonctionnement GE'] = df['Temps de fonctionnement GE [min]'] df_export['Indice de performance énergetique'] = df['Indice de performance énergétique [%]'] df_export['Ratio de performance'] = df['Ratio de performance [%]'] df_export['Irradiation solaire'] = df['Irradiation (Pyranomètre SR05-D1A3 13760) [W/m²]'] print("Head of exported DataFrame:") print(df_export.head()) # Exportation vers un fichier Excel df_export.to_excel(writer, sheet_name="data_12m", index=False)
-----