我计划在每次调用以下函数后,在最后一张表和平均数据对应的行中保存当月的平均数据(每个月在Excel文件中单独一张表)。
例如:在每个月的第一栏和第二行(每张)写着“运费”,全年平均为340美元。代码应将此值存储在最后一个工作表的第一列和第二行中。我写的函数如下:
def mean_cal(year_num):
file = f'year_data/year-{year_num}.xlsx'
dataframe = pd.read_excel(f'year_data/year-{year_num}.xlsx',
sheet_name=['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', 'total'])
month = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
categor = ['incomes', 'costs']
info = []
total = 0
exl = xw.Workbook(file)
for categ in categor:
for row in range(0, 19):
for month_check in month:
try:
info.append(dataframe[month_check][categ][row])
except ValueError or KeyError:
continue
for collector in info:
total += collector
if categ == 'incomes':
exl.write(f'F{row}', (total / (len(info))))
else:
pass
但它给出的错误:
Traceback (most recent call last):
File "D:\Mahdi\Programming\Projects\Rabin amc\proj_func.py", line 209, in <module>
mean_cal(1402)
File "D:\Mahdi\Programming\Projects\Rabin amc\proj_func.py", line 106, in mean_cal
exl.write(f'F{row}', (total / (len(info))))
^^^^^^^^^
AttributeError: 'Workbook' object has no attribute 'write'```
1条答案
按热度按时间r9f1avp51#
变量
exl
被赋给一个Workbook
对象。然而,正如错误消息所说,这种类型的对象没有write()
属性。在将值写入单元格之前,必须创建一个
Worksheet
对象。这个对象有一个write()
属性。从xlsxwriter文档复制的简单用法示例:
值得注意的是,除了以字符串形式提供单元地址之外,还可以将其作为行索引整数和列索引整数提供。再次从xlsxwriter文档复制的示例: