Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

Estimativa de efetivo para PMMT nas eleições de 2018

3171 views
Kernel: Python 3 (Anaconda 5)
import os import folium import pandas as pd print(folium.__version__)
0.6.0
df = pd.read_excel('res2.xlsx', sheet_name='dados')
df.head()
grupos = df.groupby('GRUPOS')['latitude', 'longitude'].mean()
grupos.head()
grupos2 = df.groupby('GRUPOS')['EFETIVO'].sum()
grupos2.head()
GRUPOS 0 38.653002 1 12.000000 2 3.000000 3 6.000000 4 2.000000 Name: EFETIVO, dtype: float64
grupos = pd.concat([grupos, grupos2], axis=1) grupos.head()
grupos = grupos.reset_index() grupos.head()
from folium.plugins import MarkerCluster m = folium.Map(location=[-15.6, -56.1], zoom_start=7)
def cor(efetivo): if efetivo < 10: return('lightgray') elif efetivo < 25: return('orange') else: return('red')
grupos.index[1]
1
print("{:03.0f}, Efetivo: {:05.1f}".format(grupos.index[0], grupos.EFETIVO[0]))
000, Efetivo: 038.7
marker_cluster = MarkerCluster().add_to(m) def ad_local(coord): # print(coord) folium.Marker(location=coord[['latitude', 'longitude', 'EFETIVO']], popup="Grupo: {:03.0f}, Efetivo: {:05.1f}".format(coord.GRUPOS, coord.EFETIVO), icon=folium.Icon(color=cor(coord.EFETIVO)), ).add_to(marker_cluster)
grupos.apply(ad_local, axis = 1)
0 None 1 None 2 None 3 None 4 None 5 None 6 None 7 None 8 None 9 None 10 None 11 None 12 None 13 None 14 None 15 None 16 None 17 None 18 None 19 None 20 None 21 None 22 None 23 None 24 None 25 None 26 None 27 None 28 None 29 None ... 670 None 671 None 672 None 673 None 674 None 675 None 676 None 677 None 678 None 679 None 680 None 681 None 682 None 683 None 684 None 685 None 686 None 687 None 688 None 689 None 690 None 691 None 692 None 693 None 694 None 695 None 696 None 697 None 698 None 699 None Length: 700, dtype: object
heat_data = [[row['latitude'],row['longitude'], row['EFETIVO']] for index, row in grupos.iterrows()]
grupos['EFETIVO'].max()
38.653002126533636
from folium.plugins import HeatMap # https://python-visualization.github.io/folium/plugins.html HeatMap(heat_data, min_opacity=0.2, max_val=grupos['EFETIVO'].max(), max_zoom=1, radius=30, blur=15, gradient={0: 'grey', 1: 'red'}).add_to(m)
<folium.plugins.heat_map.HeatMap at 0x7f455b3846d8>
m.save('Mapa_de_zona_quente.html')