努力学习数据分析的周果昂 2020-03-22 19:18 采纳率: 0%
浏览 395

DataFrame中怎么转换为values不带中括号的字典形式?利用Geo画城市地图遇到困难了

数据来源是天池新人赛的lisitngs(已经部分处理)


我打算用pyecharts画图


遇到的第一个问题是0.5和1.0的各种坑...


第二个问题就是总是产生


too many values to unpack (expected 2)这种错误报告


刚入门数据分析希望亲朋好友以及大佬爸爸们的猛烈鞭策...


代码如下:

pip install echarts-china-provinces-pypkg  -i https://mirrors.aliyun.com/pypi/simple# 中国省级地图
pip install echarts-china-cities-pypkg  -i https://mirrors.aliyun.com/pypi/simple# 中国市级地图
pip install echarts-china-misc-pypkg -i https://mirrors.aliyun.com/pypi/simple # 中国区域地图
#导入地图库
from pyecharts.charts import Geo
from pyecharts import options as opts
from pyecharts.globals import GeoType
data = pd.DataFrame(listings,columns=['id','price'])
data_pair = data.set_index('id').T.to_dict('list')
def test_geo():
    city = '北京'
    g = Geo()
    g.add_schema(maptype=city)
    # 定义坐标对应的名称,添加到坐标库中 add_coordinate(name, lng, lat)
    for i in range(len(data_pair)):
        g.add_coordinate(listings['name'][i],listings['longitude'][i],listings['latitude'][i])
    # 定义数据对
    g.add('', data_pair, type_=GeoType.EFFECT_SCATTER, symbol_size=5)    
    # 设置样式
    g.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    # 自定义分段 color 可以用取色器取色
    pieces = [
        {'max': 100, 'label': '100以下', 'color': '#50A3BA'},
        {'min': 101, 'max': 200, 'label': '100-200', 'color': '#3700A4'},
        {'min': 201, 'max': 300, 'label': '201-300', 'color': '#81AE9F'},
        {'min': 301, 'max': 400, 'label': '301-400', 'color': '#E2C568'},
        {'min': 401, 'max': 500, 'label': '401-500', 'color': '#FCF84D'},
        {'min': 501, 'max': 600, 'label': '501-600', 'color': '#DD0200'},
        {'min': 601, 'max': 700, 'label': '601-700', 'color': '#DD675E'},
        {'min': 701, 'label': '701以上', 'color': '#D94E5D'}  # 有下限无上限
    ]
    #  is_piecewise 是否自定义分段, 变为true 才能生效
    g.set_global_opts(
        visualmap_opts=opts.VisualMapOpts(is_piecewise=True, pieces=pieces),
        title_opts=opts.TitleOpts(title="{}-区域房屋以及价格分布".format(city)),
    )
    return g
g = test_geo()
g.render('test_render.html')

我怀疑是我的data_pair做的字典没做对
然后就开始报too many values to unpack (expected 2)

叩谢 帮到忙的请喝奶茶

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-07-25 17:29
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题主要出在data_pair这个字典上,应该是因为字典中的值不符合预期,导致在解包过程中发生错误。可以尝试修改data_pair的生成方式,确保值符合期望的数据结构。 以下是修改后的代码示例:
    data_pair = data.set_index('id')['price'].to_dict()
    

    通过上述代码,将生成一个以'id'为key,'price'为value的字典,确保了数据结构的正确性。 如果问题依然存在,还可以检查一下data_pair字典中的数据是否与期望的格式一致,确保每个值都是一个列表,包含两个元素。 希望以上解答对您有帮助,如有其他问题请随时联系。祝您在数据分析的学习过程中取得更多进展!如果需要帮忙,请记得请我喝奶茶哦~🍵。

    评论

报告相同问题?

悬赏问题

  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥30 C++行情软件的tick数据如何高效的合成K线