AttributeError Traceback (most recent call last) Cell In[168], line 15 12 print(df_desc) 14 # 保存Excel文件并关闭写入器对象 ---> 15 writer.book = Workbook() 16 writer.save() 17 writer.close() AttributeError: property 'book' of 'OpenpyxlWriter' object has no setter
时间: 2023-12-28 07:04:19 浏览: 165
这个错误可能是因为 `OpenpyxlWriter` 对象的 `book` 属性是只读的,不能通过给它赋值的方式来实现保存 Excel 文件。在新版的 `pandas` 中,可以将 `ExcelWriter` 对象传递给 `to_excel` 方法的 `excel_writer` 参数,来实现直接将数据写入 Excel 文件并保存。
下面是修改后的代码示例:
```python
import pandas as pd
# 创建一个写入器对象,用于将数据帧写入Excel文件
writer = pd.ExcelWriter('描述统计信息.xlsx', engine='openpyxl')
# 循环遍历每个数据帧,将每个数据帧的描述统计信息写入Excel文件
for i, df in enumerate(dfs):
df_desc = df.describe()
sheet_name = '描述统计信息{}'.format(i+1)
df_desc.to_excel(writer, sheet_name=sheet_name)
print(df_desc)
# 保存Excel文件并关闭写入器对象
writer.save()
writer.close()
```
在上述代码中,我们在创建 `ExcelWriter` 对象时指定了 `engine='openpyxl'`,并在循环中使用 `to_excel` 方法将每个数据帧的描述统计信息写入 Excel 文件中的一个名为 `sheet_name` 的工作表中。然后,我们直接使用 `writer` 对象的 `save` 和 `close` 方法来保存 Excel 文件并关闭写入器对象。
阅读全文