解决Plotly绘制新冠疫情动态地图时出现KeyError: Timestamp报错问题
问题修复方案
报错根本原因
旧版本Plotly的animation_frame参数不直接支持datetime64/Timestamp类型的数据,内部映射处理时无法识别时间戳对象,因此触发KeyError。
可行解决方法
方法1:将日期列转为字符串类型(兼容性最好,全版本适用)
在完成分组聚合后,将Date列转为格式化字符串即可,修改代码如下:
df_datecountry = df.groupby(['Date', 'Country']).sum().reset_index().sort_values('Date', ascending = True) # 新增这一行,将datetime转为%Y-%m-%d格式的字符串 df_datecountry['Date'] = df_datecountry['Date'].dt.strftime('%Y-%m-%d') fig = px.choropleth(df_datecountry, locations = 'Country', locationmode = 'country names', color = 'Confirmed', hover_name = 'Country', animation_frame = 'Date')
如果需要调整滑块的显示样式,可以额外添加布局配置:
fig.update_layout( sliders=[{ "currentvalue": {"prefix": "观测日期:"} }] ) fig.show()
方法2:升级Plotly到最新版本
新版本Plotly已经修复了时间类型作为动画帧参数的兼容问题,执行以下命令升级后不需要修改原有代码即可运行:
pip install --upgrade plotly
内容的提问来源于stack exchange,提问作者dl_atl
相关产品推荐
相关产品推荐

