鱼C论坛

 找回密码
 立即注册
查看: 2672|回复: 2

[已解决]pandas提示没有save

[复制链接]
发表于 2023-7-11 16:19:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import pandas as pd
df = pd.DataFrame({
    '编号':['1001','1002','1003'],
    '姓名':['张三','李四','王五'],
    '总成绩':[740,658,543]
})
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:21:41
pandas  的  ExcelWriter  对象在较新版本的pandas中,实际上并不需要你调用  save()  方法。你应该调用  close()  方法来确保数据被保存并且文件被正确关闭。你的代码可以修改为:
import pandas as pd
df = pd.DataFrame({
    '编号':['1001','1002','1003'],
    '姓名':['张三','李四','王五'],
    '总成绩':[740,658,543]
})
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版本以后。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 pddf = pd.DataFrame({'编号': ['1001', '1002', '1003'], '姓名': ['张三', '李四', '王五'], '总成绩': [740, 658, 543]})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 版本,以便更好地帮助您解决问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-11 16:21:41 | 显示全部楼层    本楼为最佳答案   
pandas  的  ExcelWriter  对象在较新版本的pandas中,实际上并不需要你调用  save()  方法。你应该调用  close()  方法来确保数据被保存并且文件被正确关闭。你的代码可以修改为:
import pandas as pd
df = pd.DataFrame({
    '编号':['1001','1002','1003'],
    '姓名':['张三','李四','王五'],
    '总成绩':[740,658,543]
})
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版本以后。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 10:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表