Pandas DataFrame到Excel的问题

时间:2015-06-25 21:12:20

标签: python excel pandas

我正在尝试通过Pandas Datarame将元组列表导出到Excel,但每次我尝试运行该函数时,我得到:

  

TypeError: init ()得到了一个意外的关键字参数“engine”

元组列表类似于

[(83, 97), (34, 78), (39, 70), (60, 66), (90, 48)...]

以下是我正在使用的代码:

#Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter(results, engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', index=False)

有谁知道为什么会这样?这是一个缺少模块的情况吗?我在一个无法访问互联网的区域工作,所以我无法下载/更新库。将一个元组列表轻松传递给excel文件会有不同的替代方法吗?

3 个答案:

答案 0 :(得分:3)

在我的CentOS上,我遇到了同样的问题。

很容易解决这个问题
pip install xlsxwriter

(在您的系统上,您可能需要做一些不同的事情;不过,请安装此软件包)。

之后,问题变为

AttributeError: 'list' object has no attribute 'rfind'

然而,

df.to_excel('data.xls', sheet_name='Sheet1', index=False, engine='xlsxwriter')

作品。

答案 1 :(得分:2)

这取决于您拥有的openpyxl和pandas的版本,但this answerthis similar question可能会有所帮助。只需添加以下行:

import pandas as pd
pd.core.format.header_style = None

导入pandas时,会删除pandas中索引行和标题列中硬编码的格式化字典。

更详细的讨论也在this answer中。基本上,openpyxl版本2弃用了将字典样式定义映射到新openpyxl api的样式转换函数,但是Pandas仍然使用旧样式,并且由于某种原因,弃用传递函数错误输出。

答案 2 :(得分:1)

这适用于我使用Pandas 14.1。

df = pd.DataFrame([(1, 2), (3, 4)])

>>> df
   0  1
0  1  2
1  3  4
file_path = '~/Downloads/test.xlsx'
df.to_excel(file_path, index=False)

我不相信有必要明确设置引擎:

  

excel_writer:string或ExcelWriter对象(文件路径或现有文件   ExcelWriter)