当前位置: 首页 > 知识库问答 >
问题:

KeyError:

钮善
2023-03-14

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

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

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

文件“test.py”,第16行,在测试中。到excel(writer,'test')文件“C:\Users\renaud.viot\AppData\Local\Programs\Python36\lib\site packages\pandas\core\frame.py”,第1766行,到excel engine=engine)文件“C:\Users\renaud.viot\AppData\Local\Programs\Python36\lib\site packages\pandas\io\formats\excel.py”,第652行,在write freeze\panes=freeze\panes)文件中“C:\Users\renaud。viot\AppData\Local\Programs\Python\Python36\lib\site packages\pandas\io\excel。py”,第1395行,在write_cells xcell.value中,fmt=self._value_与_fmt(cell.val)文件“C:\Users\renaud”。viot\AppData\Local\Programs\Python\Python36\lib\site packages\openpyxl\cell\cell。py”,第291行,在值self.\u bind\u值(值)文件“C:\Users\renaud”中。viot\AppData\Local\Programs\Python\Python36\lib\site packages\openpyxl\cell\cell。py”,第193行,在_bind_value self._set_time_格式(值)文件“C:\Users\renaud”中。viot\AppData\Local\Programs\Python\Python36\lib\site packages\openpyxl\cell\cell。py”,第277行,采用设置时间格式self.number格式=fmts[类型(值)]键错误:

我使用的这段代码如下:

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,雷诺

共有2个答案

鲜于峰
2023-03-14

我对熊猫0.23.4和openpyxl 2.5.6也有同样的问题。我更新(使用conda更新openpyxl)到2.5.8,问题就消失了。

单于越
2023-03-14

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

我相信这个错误与模块openpyxl有关。Pandas将其用作将数据导出为excel文件的引擎。当您使用命名文件时。xlsxextension,类excelwriter自动使用openpyxl作为默认引擎。

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

所以我的代码从:

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()

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

这也能解决你的问题。

 类似资料:
  • 问题内容: 这是代码 错误回溯为: 似乎struct.unpack方法将’\ xff '解析为255并分配给,无论传递的非null字符集参数如何。 这是MySQL版本问题吗?(版本) 问题答案: 可以参考 拉取请求591

  • 本文向大家介绍python Manager 之dict KeyError问题的解决,包括了python Manager 之dict KeyError问题的解决的使用技巧和注意事项,需要的朋友参考一下 程序需要多进程见共享内存,使用了Manager的dict。 最初代码如下: 结果报错: 解决方案: 以上这篇python Manager 之dict KeyError问题的解决就是小编分享给大家的全部

  • 问题内容: 以下代码段: 抛出KeyError: 有人知道为什么吗? 问题答案: 该代码中有许多未转义的花括号。Python认为所有花括号都是占位符,并正在尝试替换所有花括号。但是,您只提供了一个值。 我希望您不希望所有的花括号都成为占位符,因此您应该将不希望使用的花括号加倍。如: 我还随意使用字符串文字的三引号,因此您无需在每行末尾使用反斜杠。

  • 问题内容: python的新手,新手开发人员,首次调用 我正在调用一些JSON并将相关数据解析为csv。我无法弄清楚如何使用默认键填充中间的json Dict文件,因为其中很多都没有填充。当我尝试将内容解析为csv时,结果是KeyError。希望有任何建议! 谢谢。 更新:谢谢大家!我现在收到(制造商)的“ NoneType”错误: 问题答案: 您可以使用而不是直接引用键。

  • 问题内容: 我想创建一个python字典,将字典中缺少的键的键值返回给我。 用法示例: 问题答案: 对此有一个钩子:

  • 本文向大家介绍Python操作dict时避免出现KeyError的几种解决方法,包括了Python操作dict时避免出现KeyError的几种解决方法的使用技巧和注意事项,需要的朋友参考一下 在读取dict的key和value时,如果key不存在,就会触发KeyError错误,如: 就会出现: KeyError: 'd' 第一种解决方法 首先测试key是否存在,然后才进行下一步操作,如: 会出现:

  • 我有一个奇怪的例子,我有一个secret.env文件,我把所有的环境变量都设置成这样: 秘密. env 然后我构建了一个docker文件来导出所有变量并运行应用程序: 但是,这将引发一个关键错误: 当我在我的窗户上运行这个程序时,它工作得很好! 有人能帮我一下吗?

  • 问题内容: 当我尝试绘制其中包含日期时间的pandas DataFrame列的切片时出现KeyError。有人知道是什么原因造成的吗? 我设法在一个独立的示例中重现了该错误(您也可以在这里查看:http : //nbviewer.ipython.org/3714142/): 现在,如果我绘图: 没问题,但是当我绘图时: 我在下面看到KeyError(错误消息对我不是很有帮助)。这 仅在dateti