python-3.x - KeyError(f"None of [{key}] are in the [{axis_name}]") 从 python 3.6 升级到 3.8 后
问题描述
我刚搬到新的 MacBook Pro,安装了 python 3.8 并 pip 安装了我在旧 MBP 中的软件包。我在旧 MBP 中运行 python 3.6。我现在在 python 脚本中遇到错误,我相信唯一的区别是 python 3.8(而不是 python 3.6)
错误是 ... KeyError(f"[{key}] 中没有 [{axis_name}]")
下面代码中定义绘图的最后一行是因错误而被调用的那一行。附加的屏幕截图显示了打印语句的输出和错误。
感谢任何帮助,因为我现在正碰壁。TIA。
print("Index")
print(df_transpose_deaths.index)
print("Columns")
print(df_transpose_deaths.columns)
print("df transpose deaths")
print(df_transpose_deaths)
xindex = df_transpose_deaths.index
ycolumns = df_transpose_deaths.columns
deaths_world_plot = df_transpose_deaths.plot(x = xindex, y = ycolumns, kind='line', xticks=x_ticks, legend=False)
解决方案
我能够实施一个修复程序,让这个脚本在我的新 MBP 和 python 3.8 上再次工作(在旧 MBP 上使用 python 3.6)。
我的绘图语句正在做的是获取 df 并将 df 索引用作“x”的值,然后其余列是沿“y”绘制的线。我推测错误是说索引值没有作为列的一部分找到。因此,我创建了一个具有新名称的新列,并将索引的值设为新列的值。然后,我将这个新列用作绘图语句中的“x”。对于绘图语句中的“y”,我将列名放在一个列表中,并将其用于“y”。因此,我假设 python 3.6 和 python 3.8 之间在能够在 plot 语句中引用 .index 和 .columns 值方面发生了一些变化。
有效的新代码。
ycolumns = df_transpose_deaths.columns
df_transpose_deaths['MYDATE'] = df_transpose_deaths.index
deaths_world_plot = df_transpose_deaths.plot(x = 'MYDATE', y = ycolumns, kind='line', xticks=x_ticks, legend=False)
推荐阅读
- html - 如果 html 标签来自 React Component 中的数组,如何将它们呈现为 html 标签而不是字符串?
- python - 在基于条件的嵌套列表中查找连续的 True 和 False
- xml - 如何按条件隐藏rtf模板中的行以进行oracle融合?这种标记语言叫什么名字?
- c# - 有没有办法在 Unity 多人游戏中找到哪个玩家是主机?
- excel - 当使用“.paste”方法将数据从 MS Excel 中的单元格粘贴到 MS Word 表中的单元格时,为什么 VBA 会退出调试模式?
- apache-spark - 有没有办法在 UDF 中将文件写入 hdfs?
- javascript - 有没有更简单的方法来编写 javascript 承诺 reolution
- php - 如何在php中比较和替换数组中的值
- regex - 如何使用 RegEx 比较两个字符串
- azure-active-directory - 用户的 Microsoft Graph Api $count 响应不一致