Plotly.express如何读取Pandas多级索引列绘制带误差棒的散点图
方法1:直接传入对应列的Series(无需修改原DataFrame结构)
Plotly Express的坐标、误差列参数除了接受字符串类型的列名外,也支持直接传入Pandas Series对象。你不需要调整mean_df的多级列结构,直接按多级索引取对应列传入即可:
fig = px.scatter( mean_df, x = mean_df[('x', 'mean')], y = mean_df[('y', 'mean')], error_y = mean_df[('y', 'std')], ) fig.show()
你之前直接传元组('x','mean')失效的原因是Plotly Express默认只会将字符串类型的参数解析为DataFrame的列名,元组类型无法自动匹配到多级列索引。
方法2:规范展平多级列(工程常用处理方式)
如果后续需要频繁用到聚合后的统计值,将多级列展平为单级是非常常规的操作,不会额外增加冗余成本,更推荐用下划线替代空格命名,避免后续调用时还要加引号的麻烦:
# 展平列名,格式为「原列名_统计指标」 mean_df.columns = [f"{col[0]}_{col[1]}" for col in mean_df.columns] # 后续调用更简洁 fig = px.scatter( mean_df, x = 'x_mean', y = 'y_mean', error_y = 'y_std', ) fig.show()
内容的提问来源于stack exchange,提问作者user171780
相关产品推荐
相关产品推荐

