当前位置: 首页 > 面试题库 >

pandas KeyError:值不在索引中

徐安康
2023-03-14
问题内容

我有以下代码,

df = pd.read_csv(CsvFileName)

p = df.pivot_table(index=['Hour'], columns='DOW', values='Changes', aggfunc=np.mean).round(0)
p.fillna(0, inplace=True)

p[["1Sun", "2Mon", "3Tue", "4Wed", "5Thu", "6Fri", "7Sat"]] = p[["1Sun", "2Mon", "3Tue", "4Wed", "5Thu", "6Fri", "7Sat"]].astype(int)

在csv文件没有足够的覆盖范围(所有工作日)之前,它一直有效。例如,对于以下.csv文件,

DOW,Hour,Changes
4Wed,01,237
3Tue,07,2533
1Sun,01,240
3Tue,12,4407
1Sun,09,2204
1Sun,01,240
1Sun,01,241
1Sun,01,241
3Tue,11,662
4Wed,01,4
2Mon,18,4737
1Sun,15,240
2Mon,02,4
6Fri,01,1
1Sun,01,240
2Mon,19,2300
2Mon,19,2532

我会收到以下错误:

KeyError: "['5Thu' '7Sat'] not in index"

它似乎有一个非常简单的修复程序,但是我对Python来说还太陌生,不知道如何修复它。


问题答案:

使用reindex以获得您所需要的所有列。它将保留已经存在的那些,否则将其放入空列。

p = p.reindex(columns=['1Sun', '2Mon', '3Tue', '4Wed', '5Thu', '6Fri', '7Sat'])

因此,您的整个代码示例应如下所示:

df = pd.read_csv(CsvFileName)

p = df.pivot_table(index=['Hour'], columns='DOW', values='Changes', aggfunc=np.mean).round(0)
p.fillna(0, inplace=True)

columns = ["1Sun", "2Mon", "3Tue", "4Wed", "5Thu", "6Fri", "7Sat"]
p = p.reindex(columns=columns)
p[columns] = p[columns].astype(int)


 类似资料:
  • 问题内容: 我有以下形式的查询: 该查询返回几百条记录,尽管这些表具有数百万行,并且它要花很长时间才能运行(大约一个小时)。 当我使用以下方法检查索引统计信息时: 我看到只使用了othertable.m_id的索引,而根本没有使用col1..3的索引。为什么是这样? 我在一些 地方读过,PG传统上无法索引NULL值。但是,我已经阅读了自PG 8.3以来的情况,据说已经改变了吗?我目前在Ubuntu

  • 问题内容: 我试图通过使用elastic4s API 索引一些数据以进行elasticsearch 但是我正在编译错误 这是代码,稍后我将js对象字段映射到elasticsearch字段, 但是现在我只想索引一个测试用例 这是SBT文件 这是完全错误 我在安装过程中错过了什么吗? 还是其他? 谢谢miki 问题答案: 您的问题是缺少导入。作为链接状态的文档, 您还需要以下内容: 该模块是elast

  • 现在,我要检索一个值: Q1:在[3.3,6.6]范围内-预期返回值:[3.3,5.5,6.6]或[3.3,3.3,5.5,6.6](包括最后一个),如果没有,则为[3.3,5.5]或[3.3,3.3,5.5]。 Q2:在[2.0,4.0]范围内-预期返回值:[3.3]或[3.3,3.3] 对于任何其他多索引维度都是相同的,例如B值: Q3:在范围[111,500]中有重复,作为范围中的数据行数-

  • 问题内容: 我有一个像这样的NumPy数组: 我知道我可以使用例如花式索引来替换位于位置的值: 但是,如何替换不在的位置的值?像下面这样吗? 问题答案: 我不知道这样做的干净方法: 当然,如果您更喜欢使用numpy数据类型,则可以使用-输出不会有任何差异。确实,这只是一个偏好问题。

  • 我试图比较两个数据帧的差异,使用一个公共键/索引值,该值由帧中的3列组成。 e、 g.假设两列中的列都是:“COL1”、“COL2”、“COL3”、“COL4” 数据帧是df1 然后,我使用了set_index方法: 然后我想遍历df1数据帧,并检查df2数据帧是否有匹配的索引。我尝试过使用以下方法: 但是它返回false(尽管我可以通过打印看到两者的索引都存在)。 我做错了什么? 另外,如何使用

  • 我使用< code > Hibernate Search 4 . 5 . 1 编写了< code>Spring web-app。当我尝试搜索时,它返回一个条目列表。我认为索引中的问题。用于索引的目录已创建,但实体保存文件后,目录中的文件不变。 这是我的Spring配置文件 我的实体文件