gpt4 book ai didi

Python函数将变量输入字符串

转载 作者:行者123 更新时间:2023-12-04 22:22:32 27 4
gpt4 key购买 nike

我已经使用 xlsxwriter 将 pandas df 输出到 excel 文件中。我正在尝试在顶部创建一个总计行。为此,我正在尝试创建一个函数,该函数根据我选择的列动态填充总数。

这是我打算做的一个例子:

worksheet.write_formula('G4', '=SUM(G4:G21)')
#G4 = Where total should be placed

我需要这是一个函数,因为行数可以改变(总和范围应该是动态的),并且我希望有一种简单的方法可以将此公式应用于各个列。

因此,我想出了以下内容:
def get_totals(column):
start_row = '4' #row which the totals will be on
row_count = str(tl_report.shape[0]) #number of rows in the table so I can sum up every row.
return (worksheet.write_formula(str(column+start_row),"'=SUM("+str(column+start_row)+":"+str(column+row_count)+")'") )



运行 get_totals("G") 时它只会导致 0。我怀疑它与我必须应用的 STR 运算符有关,因为它在公式中添加了单引号,因此不正确地呈现它。

但是我不能去掉 str 运算符,因为我显然不能连接 INT?

也许我编码这一切都是错误的,python 新手,任何帮助表示赞赏。

谢谢!

最佳答案

你也可以这样做:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1,2,3,4], 'B': [5,6,7,8],
'C': [np.nan, np.nan, np.nan, np.nan]})

writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', index=False, startrow = 2)
workbook = writer.book
worksheet = writer.sheets['Sheet1']

def get_totals(start_row, sum_column, column1='A', column2='B'):
for row in range(start_row,df.shape[0]+start_row):
worksheet.write_formula(f'{sum_column}{row}', f'=SUM({column1}{row},{column2}{row})')

get_totals(4, 'C')

writer.save()

输出:

enter image description here

关于Python函数将变量输入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61262076/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com