通过使用 Python 应用 Excel 公式创建一个新的数据框列
Create a new dataframe column by applying Excel formula using Python
我有一个 excel 电子表格,我正在使用 pandas 将其读入数据框。我有第二个 excel 文件,其中包含一些需要应用于第一个 excel 以创建新列的公式。我的第一个 excel 数据框看起来有点像这样:
RPA Rej RPA Acc
1 0
5 3
0 0
根据第二个 excel,我想减去 RPA Rej
和 RPA Acc
的值并用它们的结果创建一个新列 Total
并写入整个dataframe 到一个 excel 文件中,我通过这个非常成功:
df['Total'] = df['RPA Rej'] - df['RPA Acc']
还有这个:
df.to_excel('data.xlsx', index = False)
但我想在单击 Total
列中的值时查看 excel 公式,如下所示:
我不知道如何使用 excel 公式对 python 进行算术运算。如果你们能帮助我实现这一目标,我将不胜感激
您可以使用 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()
输出:
我有一个 excel 电子表格,我正在使用 pandas 将其读入数据框。我有第二个 excel 文件,其中包含一些需要应用于第一个 excel 以创建新列的公式。我的第一个 excel 数据框看起来有点像这样:
RPA Rej RPA Acc
1 0
5 3
0 0
根据第二个 excel,我想减去 RPA Rej
和 RPA Acc
的值并用它们的结果创建一个新列 Total
并写入整个dataframe 到一个 excel 文件中,我通过这个非常成功:
df['Total'] = df['RPA Rej'] - df['RPA Acc']
还有这个:
df.to_excel('data.xlsx', index = False)
但我想在单击 Total
列中的值时查看 excel 公式,如下所示:
我不知道如何使用 excel 公式对 python 进行算术运算。如果你们能帮助我实现这一目标,我将不胜感激
您可以使用 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()
输出: