gpt4 book ai didi

python - key 错误 : when saving dataframe to excel

转载 作者:太空狗 更新时间:2023-10-29 22:20:44 26 4
gpt4 key购买 nike

早上好,我已经使用 python 大约一年半了,我发现自己面临着一个我无法解决的基本问题。

我有一个简单的数据框 (df),不大(大约 12k 行和 10 列),其中包括一列是“datetime64[ns]”格式,一列是“float64”,其他都是“对象”。 我调试了,可以说错误来自 datetime 列。

当我将此 df 保存到 Excel 时,我收到以下消息:

File "test.py", line 16, in test.to_excel(writer,'test') File "C:\Users\renaud.viot\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\core\frame.py", line 1766, in to_excel engine=engine) File "C:\Users\renaud.viot\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\io\formats\excel.py", line 652, in write freeze_panes=freeze_panes) File "C:\Users\renaud.viot\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\io\excel.py", line 1395, in write_cells xcell.value, fmt = self._value_with_fmt(cell.val) File "C:\Users\renaud.viot\AppData\Local\Programs\Python\Python36\lib\site-packages\openpyxl\cell\cell.py", line 291, in value self._bind_value(value) File "C:\Users\renaud.viot\AppData\Local\Programs\Python\Python36\lib\site-packages\openpyxl\cell\cell.py", line 193, in _bind_value self._set_time_format(value) File "C:\Users\renaud.viot\AppData\Local\Programs\Python\Python36\lib\site-packages\openpyxl\cell\cell.py", line 277, in _set_time_format self.number_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()

请看下面的数据样本:

>    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

一定有明显的东西......谢谢您的帮助。BR,雷诺

最佳答案

我在我的项目中遇到了同样的问题。我不明白为什么会发生此错误,但我找到了解决方案。

我相信这个错误与模块 openpyxl 有关。 Pandas 使用它作为引擎将数据导出为 excel 文件。当您使用 .xlsx 扩展名命名文件时,ExcelWritter 类会自动使用 openpyxl 作为默认引擎。

我所做的就是改变这个引擎。您可以将参数传递给 ExcelWritter 调用新引擎 (xlsxwriter) 以导出数据帧。

所以我的代码从:

writer = pd.ExcelWriter('output.xlsx')
df.to_excel(writer, 'data')
writer.save()

这个:

writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='data')
writer.save()

如果您的环境中没有安装模块 xlsxwriter,只需使用 pip install xlsxwriter 然后执行您的代码。

那也应该可以解决您的问题。

关于python - key 错误 : <class 'pandas._libs.tslibs.timestamps.Timestamp' > when saving dataframe to excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52166860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com