You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

爱尔兰住宅房价注册数据Plotly空图问题技术求助

问题排查与解决方案

一、非都柏林郡空图问题

1. 抽样数据覆盖不足

从你的数据探索输出可见,当前抽样后的5.8万条数据仅包含Donegal、Westmeath、Galway、Cork、Meath这几个郡的样本,而绘图代码中指定的Wicklow、Kildare在当前抽样集里无匹配数据,直接导致空图。

  • 验证:执行print(df['county'].unique())查看当前抽样数据包含的所有郡
  • 解决:调整抽样策略(如按郡分层抽样),确保每个目标郡都有样本;或扩大抽样比例,覆盖更多郡的观测值

2. 字符串匹配精度问题

检查数据中county列的格式是否与代码中完全一致:

  • 可能存在格式差异,比如数据中是Co Wicklow、wicklow(全小写),而代码中用首字母大写的Wicklow,导致isin过滤失效
  • 验证:执行df[df['county'].str.contains('Wicklow', case=False)]查看是否有匹配数据
  • 解决:统一county列格式,比如转成首字母大写:df['county'] = df['county'].str.title(),再进行过滤

3. Groupby后无有效数据

若目标郡有样本但绘图为空,可在循环中添加print(county_grouped),确认聚合后是否有数据输出。若为空,需检查date_of_sale列的datetime格式是否正常(你的数据探索显示格式为datetime64[ns],此问题概率较低)


二、Jupyter及绘图运行缓慢问题

1. 优化抽样策略

当前5.8万条样本仍可能带来计算负担,建议:

  • 先聚合再抽样:先按郡+年份计算房价中位数,再基于聚合后的数据绘图,大幅减少数据量
  • 分层抽样:按郡分层,每个郡抽取固定比例样本,既保证代表性,又避免单郡样本过多

2. 优化Plotly绘图逻辑

原循环中多次重复过滤+Groupby的效率较低,改为一次性聚合所有目标郡的数据后再绘图:

# 统一county格式
df['county'] = df['county'].str.title()
# 筛选目标郡
target_counties = ['Wicklow', 'Kildare', 'Meath', 'Cork']
df_filtered = df[df['county'].isin(target_counties)]
# 一次性聚合所有郡的年度中位数
grouped_data = df_filtered.groupby(['county', df_filtered['date_of_sale'].dt.year])['price'].median().reset_index(name='median_price')
# 生成子图
fig = make_subplots(rows=len(target_counties), cols=1, subplot_titles=target_counties)
# 循环添加轨迹
for i, county in enumerate(target_counties):
    county_data = grouped_data[grouped_data['county'] == county]
    fig.add_trace(go.Scatter(x=county_data['date_of_sale'], y=county_data['median_price'], name=county), row=i+1, col=1)
# 更新布局并展示
fig.update_layout(height=800, width=800, title='Median Property Prices Over Time', showlegend=False)
fig.show()

3. Jupyter环境优化

  • 关闭多余内核和浏览器标签,释放内存
  • 配置Plotly默认渲染器:plotly.io.renderers.default = 'notebook'
  • 超大数据集可改用Dask替代Pandas,避免内存溢出卡顿

内容的提问来源于stack exchange,提问作者CRM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 08:15:09