import matplotlib
import seaborn as sns
%matplotlib inline
%config InlineBackend.figure_format = 'svg'
import matplotlib.pyplot as plt
plt.style.use('ggplot')
import pandas as pd
import numpy as np
import geopandas as gpd
from tqdm import tqdm
from sklearn.cluster import KMeans, DBSCAN
from sklearn.metrics import silhouette_score
from sklearn.datasets import make_blobs
from sklearn.neighbors import KNeighborsClassifier
from ipywidgets import interactive
from collections import defaultdict
import folium
import re
cols = ['#e6194b', '#3cb44b', '#ffe119', '#4363d8', '#f58231', '#911eb4',
'#46f0f0', '#f032e6', '#bcf60c', '#fabebe', '#008080', '#e6beff',
'#9a6324', '#fffac8', '#800000', '#aaffc3', '#808000', '#ffd8b1',
'#000075', '#808080']*10
df = pd.read_csv('../CLUSTERIZACIÓN/datos/01_coordenadas_sii_cluster_0.csv')
df.head()
df.info()
print(f" Existen {df.duplicated(subset=['rut_completo']).sum()} Registros de Coordenadas Duplicadas, revisadas por RUT")
print(f" Existen {df.isnull().sum()} Valores perdidos o nulos")
print(f'Forma del conjunto de datos antes de duplicados y valores erróneos {df.shape}')
df.dropna(inplace=True)
df.drop_duplicates(subset=['rut_completo'],keep="first",inplace=True)
print(f'Forma del conjunto de datos después de duplicados y valores erróneos {df.shape}')
Gráfico de coordenadas
df.plot(x="long",y="lat",kind="scatter",alpha=0.1 ,
figsize=(10,8), title=('Datos con Cluster: 0'), label ='Cluster: 0')
Tipos de Rubros Económico
sns.countplot(data=df,x='Rubro económico')
plt.title('Tipos de Rubros Económico')
plt.xlabel('Rubro económico')
plt.ylabel('Cantidad de Registros')
plt.xticks(rotation=90)
plt.show()
Tipos de Sub rubro económico
plt.figure(figsize=(30,8))
sns.countplot(data=df,x='Subrubro económico')
plt.title('Tipos de Subrubro económico')
plt.xlabel('Subrubro económico')
plt.ylabel('Cantidad de Registros')
plt.xticks(rotation=90)
plt.show()
Tipos de Actividad económica
plt.figure(figsize=(80,8))
sns.countplot(data=df,x='Actividad económica')
plt.title('Tipos de Actividad económica')
plt.xlabel('Actividad económica')
plt.ylabel('Cantidad de Registros')
plt.xticks(rotation=90)
plt.show()