<jupyter_start><jupyter_text>Ejemplo procesamiento de excelDescargue un excel desde el sitio "estadística delictiva" de la policía nacional:https://www.policia.gov.co/grupo-informacion-criminalidad/estadistica-delictiva<jupyter_code>import numpy as np
import pandas as pd
from pandas_profiling import ProfileReport
xls_path = r"C:\opt\work\igac\git\ejemplo_data_engineering\data\hurto_a_motocicletas_2020_0.xls"
df = pd.read_excel(xls_path, sheet_name=0, skiprows = range(1, 9), header=1)
df.head()
df = pd.read_excel(xls_path, sheet_name=0, skiprows = range(1, 9), header=1, dtype={'CODIGO DANE': str})
df.head()
df.shape
df.columns
# estandarizar nombres de columnas

df.columns= df.columns.str.lower()
df.columns = df.columns.str.strip()
df.columns = df.columns.str.replace(' ','_',regex=False)
df.columns
## generar nuevas columnas

df["categoria"] = "HURTO A MOTOCICLETAS"
df["anio"] = 2020
df['codigo_departamento'] = df['codigo_dane'].str[:2]
df['codigo_municipio'] = df['codigo_dane'].str[:5]
df.head()
        
df.tail()
## REMOVER DATOS INVÁLIDOS

df = df[df['codigo_dane'].notna()]
df.tail()
# GENERAR REPORTE DE PERFILAMIENTO
profile = ProfileReport(df)
html_report = r"C:\opt\work\igac\git\ejemplo_data_engineering\reports\hurto_a_motocicletas_2020_0.xls.report.html"
profile.to_file(html_report)
## EXPORTAR A OTROS FORMATOS

df.to_json(r"C:\opt\work\igac\git\ejemplo_data_engineering\data\hurto_a_motocicletas_2020_0.json", orient='records',
           lines=True)

df.to_csv(r"C:\opt\work\igac\git\ejemplo_data_engineering\data\hurto_a_motocicletas_2020_0.tsv", sep = '\t', index=False)
## exportar a una base de datos postgresql 

from sqlalchemy import create_engine
engine_dw = create_engine('postgresql://user:password@server:5432/db_name')
df.to_sql('ponal_delitos', con=engine_dw,  if_exists='append', schema="public", index=False)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.13967073818374934, 'fraction_numerical': 0.0201805629314923, 'mean_word_length': 6.627530364372469, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 1, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '511352', 'license': 'MIT', 'n_tokens_mistral': 785, 'n_tokens_neox': 740, 'n_words': 120, 'path': 'notebooks/ejemplo_excel.ipynb', 'repo_name': 'dersteppenwolf/ejemplo_data_engineering', 'size': '1883'}