为了账号安全,请及时绑定邮箱和手机立即绑定

pydeck r.show() 输出 TypeError: vars() 参数必须具有

pydeck r.show() 输出 TypeError: vars() 参数必须具有

临摹微笑 2022-07-12 16:10:01
到目前为止,一切正常。我创建了一个新文件来创建新的热图。我的数据框如下所示:time                     name      lng     lat2019-10-16 08:00:00       A      23.1113   34.1231232019-10-16 09:00:00       B      12.1113   11.1231232019-10-16 07:30:00       C      134.1113   12.1231232019-10-16 08:40:00       D      122.1113   12.1231232019-10-16 08:50:00       A      16.1113   12.123123这始终与我之前在创建热图确切名称和其他列时使用的数据框完全相同。复制粘贴之前创建热图的代码:layer = pdk.Layer(    "HeatmapLayer",    df,    get_position="[lng, lat]") center = [126.986, 37.565] view_state = pdk.ViewState(     longitude=center[0],     latitude=center[1],    zoom=10)r = pdk.Deck(layers=[layer],             initial_view_state=view_state,             mapbox_key=MAPBOX_API_KEY)r.show()当我运行 w/o r.show() 它不显示任何东西,当我运行 r.show() 它输出TypeError: vars() argument must have __dict__ attribute我无法弄清楚出了什么问题......
查看完整描述

5 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

它发生在我身上,解决方案只传递给 pydeck 所需的列。在您的情况下 df[["lng", "lat"]] 这可能是与熊猫数据框任何列中的任何 N/A 值相关的问题,但我不确定。



查看完整回答
反对 回复 2022-07-12
?
守着一只汪

TA贡献1872条经验 获得超3个赞

这个问题有点老了。但是对于那些可能在更新版本的 pydeck 中遇到这个问题的人来说,在我的情况下,这是因为以下论点:

latitude=center_lat, longitude=center_lng

pdk.ViewState函数的不是浮点数而是np.float32变量。一个简单的演员,如float(center_lat)工作。


查看完整回答
反对 回复 2022-07-12
?
萧十郎

TA贡献1815条经验 获得超13个赞

您可以使用r.to_html()而不是解决它r.show()



查看完整回答
反对 回复 2022-07-12
?
Qyouu

TA贡献1786条经验 获得超11个赞

我正在发送 np 数组

grouped_df.apply(lambda x: list(x[[LON, LAT]].values))

哪个搞乱了 json 转换。他们需要是列表:

grouped_df.apply(lambda x: list(x[[LON, LAT]].values.tolist()))


查看完整回答
反对 回复 2022-07-12
?
当年话下

TA贡献1890条经验 获得超9个赞

我在尝试绘制 H3HexagonLayer 时遇到了类似的问题。由于提供的解决方案都不适合我,因此它遵循了解决我的问题的方法。

我刚刚将原始数据框 df 替换为:

df = pd.read_json(df.to_json())

一个好处是我不需要将列限制为明确使用的列。此外,deck.show() 和 deck.to_html() 也可以正常工作。


查看完整回答
反对 回复 2022-07-12
  • 5 回答
  • 0 关注
  • 244 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信