rva*_*aux 6 python excel dataframe python-3.x pandas
早安,我一直在使用python大约一年半,我发现自己面临着一个我无法解决的基本问题.
我有一个简单的数据帧(df),不大(大约12k行和10列),包括一个"datetime64 [ns]"格式的列,一个"float64",所有其他列都是"对象".我调试了,可以说错误来自datetime列.
当我将此df保存到Excel时,我收到以下消息:
在test.to_excel(writer,'test')文件"C:\ Users\renaud.viot\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas \"中的文件"test.py",第16行core\frame.py",第1766行,在to_excel引擎=引擎中)文件"C:\ Users\renaud.viot\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\io\formats\excel .py",第652行,写入freeze_panes = freeze_panes)文件"C:\ Users\renaud.viot\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\io\excel.py",line 1395,在write_cells xcell.value中,fmt = self._value_with_fmt(cell.val)文件"C:\ Users\renaud.viot\AppData\Local\Programs\Python\Python36\lib\site-packages\openpyxl\cell\cell .py",第291行,值为self._bind_value(value)文件"C:\ Users\renaud.viot\AppData\Local\Programs\Python\Python36\lib\site-packages\openpyxl\cell\cell.py" ,第193行,在_bind_value中自我._set_time_format(value)文件"C:\ Users\renaud.viot\AppData\Local\Programs\Python\Python36\lib\site-packages\openpyxl\cell\cell.py",第277行,在_set_time_format self.nu中 mber_format = fmts [type(value)] KeyError:
我正在使用的代码如下:
import pandas as pd
import datetime
from pandas import ExcelWriter
test = pd.read_excel("test_in.xlsx")
test["CaseDate"] = pd.to_datetime(test["CaseDate"])
writer = ExcelWriter("test_out.xlsx")
test.to_excel(writer,'test')
writer.save()
Run Code Online (Sandbox Code Playgroud)
请参阅下面的数据样本:
> A CaseDate
> 0 A 2018-08-30
> 1 A 2018-08-30
> 2 A 2018-08-30
> 3 A 2018-08-30
> 4 A 2018-08-30
> 5 A 2018-08-30
> 6 A 2018-08-30
> 7 A 2018-08-30
> 8 A 2018-08-30
> 9 A 2018-08-30
Run Code Online (Sandbox Code Playgroud)
必须有明显的东西......谢谢你的帮助.BR,Renaud
我的项目遇到了同样的问题.我无法理解为什么会发生这种错误,但我找到了解决方案.
我相信这个错误与模块有关openpyxl
.它被Pandas用作将数据导出为excel文件的引擎.当你与一个命名文件.xlsx
扩展名,自动类ExcelWritter
使用openpyxl
的默认引擎.
我所做的就是改变这个引擎.您可以传递参数以ExcelWritter
调用新引擎(xlsxwriter
)以导出数据帧.
所以我的代码改为:
writer = pd.ExcelWriter('output.xlsx')
df.to_excel(writer, 'data')
writer.save()
Run Code Online (Sandbox Code Playgroud)
到这一个:
writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='data')
writer.save()
Run Code Online (Sandbox Code Playgroud)
如果您xlsxwriter
的环境中没有安装该模块,只需使用pip install xlsxwriter
并在此之后执行您的代码.
那也应该解决你的问题.
归档时间: |
|
查看次数: |
3248 次 |
最近记录: |