Aze*_*zel 1 python dataframe python-3.x pandas folium
我尝试使用 folium 地图可视化数据,并且必须将所有芬兰城市名称绘制到地图上。我尝试使用 pandas dataframe,因为我的所有数据都是 csv 格式。这是我迄今为止尝试过的代码。
\nimport folium\nfrom folium import plugins\nimport ipywidgets\nimport geocoder\nimport geopy\nimport numpy as np\nimport pandas as pd\nfrom vega_datasets import data as vds\n\nm = folium.Map(location=[65,26], zoom_start=5)\n\n# map\nmap_layer_control = folium.Map(location=[65, 26], zoom_start=5)\n\n# add tiles to map\nfolium.raster_layers.TileLayer(\'Open Street Map\').add_to(map_layer_control)\nfolium.raster_layers.TileLayer(\'Stamen Terrain\').add_to(map_layer_control)\nfolium.raster_layers.TileLayer(\'Stamen Toner\').add_to(map_layer_control)\nfolium.raster_layers.TileLayer(\'Stamen Watercolor\').add_to(map_layer_control)\nfolium.raster_layers.TileLayer(\'CartoDB Positron\').add_to(map_layer_control)\nfolium.raster_layers.TileLayer(\'CartoDB Dark_Matter\').add_to(map_layer_control)\n\n# add layer control to show different maps\nfolium.LayerControl().add_to(map_layer_control)\n\n# display map\nmap_layer_control\nlist = {\'REGION\': [\'Kajaani\',\'Lappeenranta\',\'Pudasj\xc3\xa4rvi\'],\n \'CUSTOMERS\':[\'7\',\'4\',\'64\']}\n\nlist = pd.DataFrame(list)\n\n# geocode address and place marker on map\n\n# map\nmap_zoo = folium.Map(location=[65,26], zoom_start=4)\n\n# get location information for address\nfor i in range(0,len(list)):\n address = geocoder.osm(list[\'REGION\'])\n\n# address latitude and longitude\naddress_latlng = [address.lat, address.lng]\n\n# add marker to map\nfolium.Marker(address_latlng, popup=\'INFO\', tooltip=\'Click for more information!\').add_to(map_zoo)\n\n# display map\nmap_zoo\nRun Code Online (Sandbox Code Playgroud)\n\n
您可以使用geopy获取坐标,然后使用循环将标记添加到地图:
\nimport folium\nfrom geopy.geocoders import Nominatim\nimport pandas as pd\n\ngeolocator = Nominatim(user_agent="example")\n\nl = {\'REGION\': [\'Kajaani\',\'Lappeenranta\',\'Pudasj\xc3\xa4rvi\'],\n \'CUSTOMERS\':[\'7\',\'4\',\'64\']}\n\nl[\'COORDS\'] = []\nfor k in l[\'REGION\']:\n loc = geolocator.geocode(k).raw\n l[\'COORDS\'].append((loc[\'lat\'], loc[\'lon\']))\n\ndf = pd.DataFrame(l)\n\nmap_zoo = folium.Map(location=[65,26], zoom_start=4)\n\nfor i,r in df.iterrows():\n folium.Marker(location=r[\'COORDS\'],\n popup = r[\'REGION\'],\n tooltip=\'Click for more information!\').add_to(map_zoo)\nmap_zoo\nRun Code Online (Sandbox Code Playgroud)\n你得到:
\n\n| 归档时间: |
|
| 查看次数: |
6453 次 |
| 最近记录: |