AttributeError Traceback (most recent call last) Cell In[178], line 10 8 writer = pd.ExcelWriter('E:/应统案例大赛/附件1-股票交易数据/miaoshu{}.xlsx'.format(i)) 9 df_desc.to_excel(writer, sheet_name=sheet_name) ---> 10 writer.save() AttributeError: 'OpenpyxlWriter' object has no attribute 'save'
时间: 2024-02-24 09:55:22 浏览: 119
这个错误提示是因为在 `pd.ExcelWriter()` 方法中指定的文件类型是 Openpyxl,而不是默认的 xlwt。Openpyxl 是另一个 Excel 文件操作库,与 xlwt 有些不同,不能使用 `save()` 方法保存文件。相反,你可以在 `pd.ExcelWriter()` 方法中指定 `engine` 参数为 `'openpyxl'`,这样就可以使用 Openpyxl 库来保存文件了。下面是修改后的代码:
```python
import pandas as pd
for i in range(1, 15):
filename = 'E:/应统案例大赛/附件1-股票交易数据/a{}.xlsx'.format(i)
df = pd.read_excel(filename)
df_desc = df.describe()
sheet_name = 'a{}'.format(i+1)
writer = pd.ExcelWriter('E:/应统案例大赛/附件1-股票交易数据/miaoshu{}.xlsx'.format(i), engine='openpyxl')
df_desc.to_excel(writer, sheet_name=sheet_name)
writer.save()
```
这里使用 `engine='openpyxl'` 参数来指定文件类型为 Openpyxl,然后调用 `writer.save()` 方法保存文件。
相关问题
AttributeError Traceback (most recent call last) Cell In[169], line 14 11 print(df_desc) 13 # 保存Excel文件并关闭写入器对象 ---> 14 writer.save() 15 writer.close() AttributeError: 'OpenpyxlWriter' object has no attribute 'save'
这个错误可能是因为 `OpenpyxlWriter` 对象没有 `save` 属性。在新版的 `pandas` 中,`ExcelWriter` 对象默认使用 `openpyxl` 引擎来写入 Excel 文件。因此,您可以尝试使用 `openpyxl` 库中的 `Workbook` 对象来保存 Excel 文件,代码如下:
```python
import pandas as pd
from openpyxl import Workbook
# 创建一个写入器对象,用于将数据帧写入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.book = Workbook()
writer.save()
writer.close()
```
在上述代码中,我们在创建 `ExcelWriter` 对象时指定了 `engine='openpyxl'`,并在保存 Excel 文件时使用了 `Workbook` 对象来保存。
AttributeError Traceback (most recent call last) Cell In[165], line 15 13 print(df_desc) 14 # 保存Excel文件并关闭写入器对象 ---> 15 writer.save() 16 writer.close() AttributeError: 'OpenpyxlWriter' object has no attribute 'save'
这个错误可能是因为 `OpenpyxlWriter` 对象没有 `save` 属性。在新版的 `pandas` 中,`ExcelWriter` 对象默认使用 `openpyxl` 引擎来写入 Excel 文件。因此,您可以尝试使用 `openpyxl` 库中的 `Workbook` 对象来保存 Excel 文件,代码如下:
```python
import pandas as pd
from openpyxl import Workbook
# 创建一个写入器对象,用于将数据帧写入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.book = Workbook()
writer.save()
writer.close()
```
在上述代码中,我们在创建 `ExcelWriter` 对象时指定了 `engine='openpyxl'`,并在保存 Excel 文件时使用了 `Workbook` 对象来保存。
阅读全文