Python 熊猫为什么不创建excel文件?

Python 熊猫为什么不创建excel文件?,python,excel,pandas,Python,Excel,Pandas,我正在尝试为我生成的数据库创建一个带有熊猫的excel文件 我试过两种方法: import pandas as pd # write database to excel df = pd.DataFrame(database) # Create a Pandas Excel writer using XlsxWriter as the engine. writer = pd.ExcelWriter('fifa19.xlsx', engine='xlsxwriter') # Convert t

我正在尝试为我生成的数据库创建一个带有熊猫的excel文件

我试过两种方法:

import pandas as pd

# write database to excel
df = pd.DataFrame(database)

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('fifa19.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()
以及:

import pandas as pd
df = pd.DataFrame(database).T 
df.to_excel('database.xls')
但是,所有选项都不会生成excel文件。数据库是一本字典。

来自pandas文档本身:

如果传递现有的
ExcelWriter
对象,则工作表将添加到现有工作簿中。这可用于将不同的数据帧保存到一个工作簿:

>>> writer = pd.ExcelWriter('output.xlsx')
# writer = pd.ExcelWriter('/path_to_save/output.xlsx')
>>> df1.to_excel(writer,'Sheet1')
>>> df2.to_excel(writer,'Sheet2')
>>> writer.save()
为了与
to_csv
兼容,to_excel将列表序列化,并将其写入 在写之前输入字符串

从文件本身来看:

如果传递现有的
ExcelWriter
对象,则工作表将添加到现有工作簿中。这可用于将不同的数据帧保存到一个工作簿:

>>> writer = pd.ExcelWriter('output.xlsx')
# writer = pd.ExcelWriter('/path_to_save/output.xlsx')
>>> df1.to_excel(writer,'Sheet1')
>>> df2.to_excel(writer,'Sheet2')
>>> writer.save()
为了与
to_csv
兼容,to_excel将列表序列化,并将其写入 在写之前输入字符串


你的代码对我来说很好。在解释器的当前工作目录中创建文件;i、 e.
os.getcwd()
的输出——也许你找错地方了?@fuglede你是对的。它被保存到一个完全不同的位置。有没有一种简单的方法来更改它,使其保存到与文件相同的目录?@AntonÖdman您可以使用
os.chdir
来更改工作目录,但这取决于您如何使用它,很可能在
ExcelWriter
的参数中指定绝对路径会更好。简单的
writer=pd.ExcelWriter('/home/anton/newoutput.xlsx')
,但是您不需要在pandas的新版本中提到
engine='xlsxwriter'
。@antonÖdman,我认为调用额外的模块来更改路径是不好的,即使我们可以在写入新文件的过程中显式地提到路径,直到出于某些原因它是必需的。您的代码对我来说很好。在解释器的当前工作目录中创建文件;i、 e.
os.getcwd()
的输出——也许你找错地方了?@fuglede你是对的。它被保存到一个完全不同的位置。有没有一种简单的方法来更改它,使其保存到与文件相同的目录?@AntonÖdman您可以使用
os.chdir
来更改工作目录,但这取决于您如何使用它,很可能在
ExcelWriter
的参数中指定绝对路径会更好。简单的
writer=pd.ExcelWriter('/home/anton/newoutput.xlsx')
,但是您不需要在pandas的新版本中提到
engine='xlsxwriter'
。@antonÖdman,我认为调用额外的模块来更改路径是不好的,即使我们可以在写入新文件的过程中显式地提到路径,直到出于某些原因它是必需的。谢谢。我的代码(由其他人编写)在一段时间内运行良好,但由于某种原因停止工作(可能是由于环境变化)。原来代码没有“writer.save()”行。现在它工作了:)谢谢你。我的代码(由其他人编写)在一段时间内运行良好,但由于某种原因停止工作(可能是由于环境变化)。原来代码没有“writer.save()”行。现在它起作用了:)