2016-10-30 50 views
3

Foliumを使用して大きな数(〜20,000)の円マーカーをプロットしようとしています。緯度と経度のデータは、Pandas DataFrame(「LAT」列と「LONG」列内)に含まれています。私は次の(非効率的な)コードを考え出しました。このコードでは、行ごとにデータフレームを反復処理する必要があります。驚くことではないが、マップをプロットするにはかなりの時間がかかります。これを達成するためのより良い/より速い方法がありますか?Pandas&Foliumを使用して地図上にマーカーをプロットする

一方、私はFoliumを使用する必要はありません。あなたが知っている(私はまだパンダのデータフレームにデータを保持する必要があります)知っているより適切なツールがある場合は、私に教えてください。

ありがとうございます!

map_osm = folium.Map(location=[43.094768, -75.348634]) 
for index, row in df.iterrows(): 
    folium.CircleMarker(location=[row["LAT"], row["LONG"]]).add_to(map_osm) 
map_osm 

答えて

3

使用して列軸に沿って適用されます。

df.apply(lambda row:folium.CircleMarker(location=[row["LAT"], 
                row["LONG"]]).add_to(map_osm), 
     axis=1) 
+0

私はそれを試してみましたが、プロセスをスピードアップしていないようです。 '%% timeit'という魔法を使って、私は最初の5つのレコードをテストし、私のコードとあなたのコードの両方について約200ミリ秒で終了しました。 – marillion

+0

地図の一番上にサークルのリストを追加することはできますか?また、Foliumがサークルを1つずつ追加することを余儀なくされていますか? – Boud

+0

Foliumはベクトル化されたデータ入力をサポートしていないようです。少なくとも、私が見つけたすべての例は行ごとの繰り返しが必要でした。私はそれが別の解決策を見つける必要があるかもしれません。 – marillion

関連する問題