我正在尝试通过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文件会有不同的替代方法吗?
答案 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 answer到this 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)