到目前為止,一切正常。我創建了一個新文件來創建新的熱圖。我的數據框如下所示: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 值相關的問題,但我不確定。

守著一只汪
TA貢獻1872條經驗 獲得超4個贊
這個問題有點老了。但是對于那些可能在更新版本的 pydeck 中遇到這個問題的人來說,在我的情況下,這是因為以下論點:
latitude=center_lat, longitude=center_lng
該pdk.ViewState
函數的不是浮點數而是np.float32
變量。一個簡單的演員,如float(center_lat)
工作。

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()))

當年話下
TA貢獻1890條經驗 獲得超9個贊
我在嘗試繪制 H3HexagonLayer 時遇到了類似的問題。由于提供的解決方案都不適合我,因此它遵循了解決我的問題的方法。
我剛剛將原始數據框 df 替換為:
df = pd.read_json(df.to_json())
一個好處是我不需要將列限制為明確使用的列。此外,deck.show() 和 deck.to_html() 也可以正常工作。
添加回答
舉報
0/150
提交
取消