J'ai une feuille de calcul Excel que je lis dans un cadre de données à l'aide de pandas. J'ai un deuxième fichier excel qui contient des formules qui doivent être appliquées sur le premier excel afin de créer une nouvelle colonne. Mon dataframe de first excel ressemble un peu à ceci:

RPA Rej    RPA Acc
  1          0
  5          3
  0          0

Selon le deuxième excel, je souhaite soustraire les valeurs de RPA Rej et RPA Acc et créer une nouvelle colonne Total avec leur résultat et écrire l'ensemble du cadre de données dans un fichier excel, ce que j'ai très beaucoup réalisé par ceci:

df['Total'] = df['RPA Rej'] - df['RPA Acc']

Et ça:

df.to_excel('data.xlsx', index = False)

Mais je veux voir la formule Excel lorsque je clique sur les valeurs de la colonne Total, quelque chose comme ceci :

enter image description here

Je ne sais pas comment faire des opérations arithmétiques sur python en utilisant des formules excel. Si vous pouviez m'aider à y parvenir, j'apprécierais vraiment que

3
vesuvius 23 janv. 2020 à 13:34

1 réponse

Meilleure réponse

Vous pouvez écrire des formules sur chaque ligne en utilisant une boucle for.

import pandas as pd
import numpy as np

# Create a test dataframe
df = pd.DataFrame({'RPA Rej': [1,5,0],
                    'RPA Acc': [0,3,0]})

# Insert an empty column to write the formulas
df.insert(2, 'TOTAL', np.nan)

# Start the xlsxwriter
writer = pd.ExcelWriter('Test Formulas.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', index=False)
workbook  = writer.book
worksheet = writer.sheets['Sheet1']

# Create a for loop to start writing the formulas to each row
for row in range(2,df.shape[0]+2):
    formula = f'=A{row}-B{row}'
    worksheet.write_formula(f"C{row}", formula)

writer.save()

Sortir: Sortie

4
Dimitris Thomas 25 janv. 2020 à 15:32