import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df_empresas = pd.read_csv('D:/desarrollo/Analitica/Empresas Colombia/Personas_N_J_Sl.csv',sep=',',header=0)
C:\Users\ricar\AppData\Local\Temp\ipykernel_16732\1087325459.py:1: DtypeWarning: Columns (0,12,13,14,17,18,22,26) have mixed types. Specify dtype option on import or set low_memory=False.
df_empresas = pd.read_csv('D:/desarrollo/Analitica/Empresas Colombia/Personas_N_J_Sl.csv',sep=',',header=0)
df_empresas.head(5)
np.shape(df_empresas)
print("Rows: " + str(df_empresas.shape[0]))
print("Columns: " + str(df_empresas.shape[1]))
Rows: 4074703
Columns: 36
df_empresas.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4074703 entries, 0 to 4074702
Data columns (total 36 columns):
# Column Dtype
--- ------ -----
0 codigo_camara object
1 camara_comercio object
2 matricula float64
3 inscripcion_proponente float64
4 razon_social object
5 primer_apellido object
6 segundo_apellido object
7 primer_nombre object
8 segundo_nombre object
9 sigla object
10 codigo_clase_identificacion float64
11 clase_identificacion object
12 numero_identificacion object
13 nit object
14 digito_verificacion object
15 cod_ciiu_act_econ_pri object
16 cod_ciiu_act_econ_sec object
17 ciiu3 object
18 ciiu4 object
19 fecha_matricula float64
20 fecha_renovacion float64
21 ultimo_ano_renovado float64
22 fecha_vigencia object
23 fecha_cancelacion float64
24 codigo_tipo_sociedad float64
25 tipo_sociedad object
26 codigo_organizacion_juridica object
27 organizacion_juridica object
28 codigo_categoria_matricula float64
29 categoria_matricula object
30 codigo_estado_matricula float64
31 estado_matricula object
32 clase_identificacion_RL object
33 Num Identificacion Representante Legal object
34 Representante Legal object
35 fecha_actualizacion object
dtypes: float64(10), object(26)
memory usage: 1.1+ GB
df_empresas['fecha_actualizacion'].value_counts()
df_empresas['fecha_matricula'] = pd.to_datetime(df_empresas['fecha_matricula'], format='%Y%m%d', errors='coerce').dt.strftime('%d/%m/%Y')
df_empresas['fecha_renovacion'] = pd.to_datetime(df_empresas['fecha_renovacion'], format='%Y%m%d', errors='coerce').dt.strftime('%d/%m/%Y')
df_empresas['fecha_vigencia'] = pd.to_datetime(df_empresas['fecha_vigencia'], yearfirst=True, format='%Y%m%d', errors='coerce').dt.strftime('%d/%m/%Y')
df_empresas['fecha_cancelacion'] = pd.to_datetime(df_empresas['fecha_cancelacion'], format='%Y%m%d', errors='coerce').dt.strftime('%d/%m/%Y')
df_empresas['fecha_actualizacion'] = pd.to_datetime(df_empresas['fecha_actualizacion'], unit=None, yearfirst=True, format='%Y/%m/%d', errors='coerce').dt.strftime('%d/%m/%Y')
df_empresas['fecha_matricula'].count()
df_empresas['fecha_actualizacion'] = pd.to_datetime(df_empresas['fecha_actualizacion'], format='%d/%m/%Y')
df_empresas['matricula'] = df_empresas['matricula'].fillna(0).astype(np.int64)
df_empresas['inscripcion_proponente'] = df_empresas['inscripcion_proponente'].fillna(0).astype(np.int64)
df_empresas['codigo_clase_identificacion'] = df_empresas['codigo_clase_identificacion'].fillna(0).astype(np.int64)
df_empresas['codigo_tipo_sociedad'] = df_empresas['codigo_tipo_sociedad'].fillna(0).astype(np.int64)
df_empresas['codigo_categoria_matricula'] = df_empresas['codigo_categoria_matricula'].fillna(0).astype(np.int64)
df_empresas['codigo_estado_matricula'] = df_empresas['codigo_estado_matricula'].fillna(0).astype(np.int64)
df_empresas['ultimo_ano_renovado'] = df_empresas['ultimo_ano_renovado'].fillna(0).astype(np.int64)
df_empresas[['camara_comercio','fecha_matricula','fecha_renovacion','fecha_vigencia','fecha_cancelacion','fecha_actualizacion']]
df_empresas.head(5)
df_empresas.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4074703 entries, 0 to 4074702
Data columns (total 36 columns):
# Column Dtype
--- ------ -----
0 codigo_camara object
1 camara_comercio object
2 matricula int64
3 inscripcion_proponente int64
4 razon_social object
5 primer_apellido object
6 segundo_apellido object
7 primer_nombre object
8 segundo_nombre object
9 sigla object
10 codigo_clase_identificacion int64
11 clase_identificacion object
12 numero_identificacion object
13 nit object
14 digito_verificacion object
15 cod_ciiu_act_econ_pri object
16 cod_ciiu_act_econ_sec object
17 ciiu3 object
18 ciiu4 object
19 fecha_matricula datetime64[ns]
20 fecha_renovacion datetime64[ns]
21 ultimo_ano_renovado float64
22 fecha_vigencia datetime64[ns]
23 fecha_cancelacion datetime64[ns]
24 codigo_tipo_sociedad int64
25 tipo_sociedad object
26 codigo_organizacion_juridica object
27 organizacion_juridica object
28 codigo_categoria_matricula int64
29 categoria_matricula object
30 codigo_estado_matricula int64
31 estado_matricula object
32 clase_identificacion_RL object
33 Num Identificacion Representante Legal object
34 Representante Legal object
35 fecha_actualizacion datetime64[ns]
dtypes: datetime64[ns](5), float64(1), int64(6), object(24)
memory usage: 1.1+ GB
df_empresas.describe(include=[object])
df_empresas.describe(include=['datetime64'],datetime_is_numeric=True)
df_empresas.describe(exclude=['datetime64'])
df_empresas.describe()
df_empresas['estado_matricula'].value_counts()
df_empresas['camara_comercio'].value_counts()
df_empresas['organizacion_juridica'].value_counts()
df_empresas[df_empresas.estado_matricula.eq("ACTIVA")]
df_empresas['estado_matricula'].value_counts()
df_empresas[['camara_comercio','organizacion_juridica','estado_matricula','fecha_matricula','fecha_renovacion','ultimo_ano_renovado','cod_ciiu_act_econ_pri','tipo_sociedad']]
df_empresas_activas = df_empresas[['camara_comercio','organizacion_juridica','estado_matricula','fecha_matricula','fecha_renovacion','ultimo_ano_renovado','cod_ciiu_act_econ_pri','tipo_sociedad']]
df_empresas_activas = df_empresas_activas[df_empresas_activas.estado_matricula.eq("ACTIVA")]
df_empresas_activas.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1612593 entries, 7 to 4074694
Data columns (total 8 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 camara_comercio 1612593 non-null object
1 organizacion_juridica 1612504 non-null object
2 estado_matricula 1612593 non-null object
3 fecha_matricula 1608244 non-null datetime64[ns]
4 fecha_renovacion 1321577 non-null datetime64[ns]
5 ultimo_ano_renovado 1612593 non-null int64
6 cod_ciiu_act_econ_pri 1554288 non-null object
7 tipo_sociedad 1612593 non-null object
dtypes: datetime64[ns](2), int64(1), object(5)
memory usage: 110.7+ MB
df_empresas_activas
df_empresas_activas['ultimo_ano_renovado'].value_counts()
np.unique(df_empresas_activas['ultimo_ano_renovado'], return_counts=True)
values, distribucion = np.unique(df_empresas_activas['ultimo_ano_renovado'], return_counts=True)
plt.bar(values, distribucion)
sns.set_theme(style='darkgrid')
sns.countplot(x=df_empresas_activas['ultimo_ano_renovado'], data=df_empresas_activas)
plt.title('Distribución renovaciòn')
np.unique(df_empresas_activas['tipo_sociedad'], return_counts=True)
values, distribucion = np.unique(df_empresas_activas['tipo_sociedad'], return_counts=True)
plt.bar(values, distribucion)
df_empresas_activas['estado_matricula'].value_counts()
df_empresas_activas['cod_ciiu_act_econ_pri'].value_counts()
df_empresas_activas['organizacion_juridica'].value_counts()
file_name = 'empresas_activas.xlsx'
df_empresas_activas.to_excel(file_name)
print('Records successfully exported into Excel File')
file_name = 'empresas_activas.csv'
df_empresas_activas.to_csv(file_name, index = False)
print('Records successfully exported into CSV File')
Records successfully exported into CSV File