当我想将数据框保留在名为 pandas_simple.xlsx 的 Excel 文件中时,出现此错误
以下是我的错误:
这是我的代码:
import pandas as pd
df = pd.DataFrame({'Car': [101, 20, 350, 20, 15, 320, 454]})
writer = pd.ExcelWriter('pandas_simple.xlsx')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()
writer.close()
有人可以在这里与我分享一些想法吗?
如果您的桌面上已打开同一文件的版本(本例中为 pandas_simple.xlsx),也可能会发生此错误。在这种情况下,python 将无权关闭和覆盖同一文件。关闭 Excel 文件并重新运行脚本应该可以解决问题。
您尝试写入需要管理权限的文件夹。变化:
writer = pd.ExcelWriter("pandas_simple.xlsx")
至:
writer = pd.ExcelWriter("C:\\...\\pandas_simple.xlsx")
有了完整路径,就不会有问题了。
pandas.DataFrame.to_excel的文档说第一个参数可以是表示文件路径的字符串。在你的情况下,我会放弃所有与作家的对话,然后尝试
df.to_excel('pandas_simple.xlsx')
这应该将 pandas_simple.xlsx 写入您当前的工作目录。如果这不起作用,请尝试提供完整路径名(例如 C:\Users\John\pandas_simple.xlsx)。另请确保您不要尝试写入需要管理权限的目录。
确保您没有打开要写入的文件。
尝试关闭在 Excel 应用程序中打开的 xlsx 文件并再次运行代码,它对我有用,你也会发生同样的情况。
我附上我的代码片段供您参考
import pandas as pd
file='C:/Users/Aladahalli/Desktop/Book1.xlsx'
xls = pd.ExcelFile(file)
df = pd.read_excel(xls, sheet_name='Sheet1')
#create a column by name Final and store concatinated columns
df["Final"] = df["Name"] + " " + df["Rank/Designation"] + " " + df["PS"]
print(df.head())
# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('C:/Users/Aladahalli/Desktop/Final.xlsx', engine='xlsxwriter')
# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')
# Close the Pandas Excel writer and output the Excel file.
writer.save()
writer.close()
当我通过双击启动 .py 文件时(在 Windows 11 系统上),我确实遇到了同样的问题。
建议的原因不适用:我尝试写入的文件不存在。因此,其他地方都没有开放。是的,我确实有相应文件夹的写权限。双击调用python3来启动.py文件中的代码。
我注意到以下几点:
当我在终端的命令行中启动代码时,问题就消失了,如下所示:python3 xyz.py
当我创建包含“python3 xyz.py”行的批处理文件(.bat)时,问题也消失了。
因此,我的解决方法是创建这样一个批处理文件,以便我可以通过双击启动此批处理文件。
问题为我解决了。但如果知道为什么通过双击启动的代码会出现这种行为,那就太好了。