首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过使用Python应用Excel公式来创建新的数据框列

通过使用Python应用Excel公式来创建新的数据框列
EN

Stack Overflow用户
提问于 2020-01-23 18:34:21
回答 1查看 2.5K关注 0票数 3

我有一个excel电子表格,我正在使用pandas将其读取到数据帧中。我有一个第二个excel文件,其中包含一些公式,需要在第一个excel上应用,以便创建一个新列。我的第一个excel数据框看起来有点像这样:

代码语言:javascript
复制
RPA Rej    RPA Acc
  1          0
  5          3
  0          0

根据第二个excel,我想减去RPA RejRPA Acc的值,并用它们的结果创建一个新的列Total,并将整个数据帧写入excel文件,这主要是通过以下方式实现的:

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

还有这个:

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

但是,当我单击Total列中的值时,我希望看到excel公式,如下所示:

我不知道如何用excel公式在python上做算术运算。如果你们能帮我做到这一点,我将不胜感激

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-25 23:32:17

您可以使用for循环将公式写入每一行。

代码语言:javascript
复制
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()

输出:

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59876479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档