hahadaxiao 发表于 2023-7-11 16:19:49

pandas提示没有save

import pandas as pd
df = pd.DataFrame({
    '编号':['1001','1002','1003'],
    '姓名':['张三','李四','王五'],
    '总成绩':
})
work = pd.ExcelWriter('E:666.xlsx')
df.to_excel(work,sheet_name='学生信息',index=False)
df[['编号','姓名']].to_excel(work,sheet_name='信息',index=False)
work.save()

Traceback (most recent call last):
File "C:\Users\K\PycharmProjects\pythonProject\777.py", line 10, in <module>
    work.save()
    ^^^^^^^^^
AttributeError: 'OpenpyxlWriter' object has no attribute 'save'. Did you mean: '_save'?

陶远航 发表于 2023-7-11 16:20:04

根据您提供的代码,出现错误是因为 pandas 库中的 ExcelWriter 对象没有 save() 方法。相反,应该使用 work.save()。

建议您检查以下几个可能的原因:

1. 确保您已经正确导入了 pandas 库,引入语句应该是 import pandas as pd 而不是 import pandas as pddf。

2. 确保您的 pandas 版本是最新的,并且与其他依赖库兼容。可以尝试升级 pandas 库到最新版本。

3. 检查是否有其他地方修改了 pandas 相关的属性或方法,可能会导致 save() 方法无法正常调用。请确保在代码中没有重命名 ExcelWriter 对象或覆盖了相关的属性。

以下是修正后的代码示例:

import pandas as pd

df = pd.DataFrame({'编号': ['1001', '1002', '1003'], '姓名': ['张三', '李四', '王五'], '总成绩': })
work = pd.ExcelWriter('E:666.xlsx')
df.to_excel(work, sheet_name='学生信息', index=False)
df[['编号', '姓名']].to_excel(work, sheet_name='信息', index=False)
work.save()


如果问题仍然存在,请提供具体的错误信息和您使用的 pandas 版本,以便更好地帮助您解决问题。

isdkz 发表于 2023-7-11 16:21:41

pandas的ExcelWriter对象在较新版本的pandas中,实际上并不需要你调用save()方法。你应该调用close()方法来确保数据被保存并且文件被正确关闭。你的代码可以修改为:

import pandas as pd
df = pd.DataFrame({
    '编号':['1001','1002','1003'],
    '姓名':['张三','李四','王五'],
    '总成绩':
})
work = pd.ExcelWriter('E:666.xlsx')
df.to_excel(work,sheet_name='学生信息',index=False)
df[['编号','姓名']].to_excel(work,sheet_name='信息',index=False)
work.close()

to_excel()方法将DataFrame写入到Excel文件,当你调用close()时,文件会被保存并关闭。这是自从pandas 0.24.0版本以来的行为,其中将底层的openpyxl更新为2.5.0版本以后。
页: [1]
查看完整版本: pandas提示没有save