Plotly Dash中Pandas groupby后px.scatter识别不到Wallclock列报错求解
问题解决方法
错误原因
报错核心是slider_fig函数中groupby操作返回的DataFrame结构不符合预期:在部分pandas版本中,df.groupby("Wallclock", as_index=False).size()不会生成名为Wallclock和size的两列,反而会将分组列转为索引,计数结果默认列名为0,因此Plotly无法找到指定的x和y列。
修复方案
修改slider_fig函数中的分组逻辑,使用兼容性更高的写法:
def slider_fig(df): return px.scatter( # 替换原有的分组写法 df.groupby("Wallclock").size().reset_index(name='size'), x="Wallclock", y="size" ).update_layout( xaxis={"rangeslider": {"visible": True}, "title":None}, height=125, yaxis={"tickmode": "array", "tickvals": [], "title": None}, margin={"l": 0, "r": 0, "t": 0, "b": 0}, )
额外注意事项
代码开头生成的测试DataFrame被后续pd.read_excel("tcd vs rh 2.xlsx")操作覆盖,若本地无对应Excel文件,可注释掉读取Excel的代码行,直接使用上方生成的测试数据验证功能。
内容的提问来源于stack exchange,提问作者haroldchoi
相关产品推荐
相关产品推荐

