HvPlot groupby组件失效求助:切换社区后数据无变化
问题解决:hvplot切换社区时数据无变化的修复
核心问题
你分组后的prices_by_year_by_neighborhood是多级索引结构,year和neighborhood都是索引而非普通列,hvplot没法直接把索引当作x轴和groupby的参数来用,导致切换社区时根本没筛选数据,自然看不到变化。
修复步骤
在调用hvplot之前,先把多级索引转成普通列就行:
# 重置多级索引,将year和neighborhood转为DataFrame的普通列 prices_by_year_by_neighborhood = prices_by_year_by_neighborhood.reset_index() # 重新绘制交互式折线图 prices_by_year_by_neighborhood.hvplot.line( x="year", y=["sale_price_sqr_foot", "gross_rent"], groupby="neighborhood", title="2010-2016年旧金山各社区每平方英尺售价与平均租金走势" )
完整修正代码
# 按年份和社区分组并计算均值 prices_by_year_by_neighborhood = sfo_data_df.groupby(by=['year','neighborhood']).mean() # 移除housing_units列 prices_by_year_by_neighborhood = prices_by_year_by_neighborhood.drop(columns=['housing_units']) # 重置多级索引,把索引转为普通列 prices_by_year_by_neighborhood = prices_by_year_by_neighborhood.reset_index() # 绘制交互式折线图 prices_by_year_by_neighborhood.hvplot.line( x="year", y=["sale_price_sqr_foot", "gross_rent"], groupby="neighborhood", title="2010-2016年旧金山各社区每平方英尺售价与平均租金走势" )
为啥这么改?
reset_index()会把原来的多级索引(year、neighborhood)转换成DataFrame的普通列,这样hvplot就能正确识别这些列,作为x轴和分组切换的依据。- 没重置索引的时候,hvplot找不到对应的列,分组切换功能等于失效,所有社区的数据叠在一起显示,切换下拉框自然看不到变化。
内容的提问来源于stack exchange,提问作者Gerardo Gomez
相关产品推荐
相关产品推荐

