Titulo

subtitulo

subsubtitulo

tabla en markdown

Nombre Edad Sexo
Diego 25 M
Maria 30 F
Pedro 40 M

codigo python en markdown

print("hola mundo")
## hola mundo

Simulacion de datos con python

import pandas as pd
import numpy as np

data = pd.DataFrame({
  "A": np.random.randn(10),
  "B": 1.5 + 2.5 * np.random.randn(10),
  "C": np.random.uniform(5,10,10)
})

print(data)
##           A         B         C
## 0  0.877662  2.562993  9.052308
## 1 -0.364029  5.132193  9.807884
## 2 -0.640084  5.155193  7.577336
## 3 -0.580069  0.282842  6.496978
## 4 -1.642162  1.252782  9.729760
## 5  0.110195 -0.400444  5.290127
## 6  1.068408  1.402519  9.722454
## 7  1.643921  3.391309  8.091195
## 8  0.901997  2.817439  9.282705
## 9  0.280647  2.207920  5.974608

Graficar con python

import matplotlib.pyplot as plt

# dibujar el cuadro generado anteriormente
data.plot(kind = "line")
plt.show()

Operacion básicas

# sumas
suma=2+5
print(suma)
## 7
division=20/4
division
## 5.0
# potencia 

potencia=5**2
potencia
## 25
# modulo

modulo=10%3
modulo
## 1
# division entera

divienter=25 // 9
divienter
## 2
mayor = 10 > 3
mayor
## True

Tipos de variables

texto="Texto"
texto
## 'Texto'
edad=45
edad
## 45
altura=120.56
altura
## 120.56

Conversión de tipos de datos

x_string="156"
x_string
## '156'
x_num=int(x_string)
x_num
## 156
a=1256
a
## 1256
a_string=str(a)
a_string
## '1256'
type(a)
## <class 'int'>
type(a_string)
## <class 'str'>

Tipos de colección

# Listas
lista=[1,2,3,4,5]
lista
## [1, 2, 3, 4, 5]
# tuplas
tupla=(1,2,3,4,5)
tupla
## (1, 2, 3, 4, 5)
# diccionarios

diccionario={
  "nombre":"Diego",
  "edad":25,
  "sexo":"M"
}

diccionario
## {'nombre': 'Diego', 'edad': 25, 'sexo': 'M'}
# conjuntos

conjunto={1,2,3,4,5}
conjunto
## {1, 2, 3, 4, 5}

Estructuras de control

Concicionales anidados (bucles)

for i in range(3):
  print(i)
## 0
## 1
## 2
valores=[1,2,3,4,5]

for i in valores:
  print(i)
## 1
## 2
## 3
## 4
## 5

Visualización de Datos y Librerías Fundamentales

import matplotlib.pyplot as plt

alturas=[1.56,1.67,1.78,1.89,1.90]
pesos=[56,67,78,89,90]

g1=plt.scatter(alturas,pesos)

#mostrar solo la figura g1
plt.show(g1)

Lectura de datos externos con python

import pandas as pd

# Ruta del archivo
ruta = "G:/Mi unidad/ADUANASPY/aduana_2024_NOVIEMBRE.csv"

# Cargar el archivo con opciones mejoradas
try:
    adu2024nov = pd.read_csv(
        ruta,
        sep=";",                  # Especificar que el separador es ";"
        decimal=",",               # Indicar que los números usan "," como separador decimal
        encoding="latin1",         # Usar encoding adecuado si hay caracteres especiales
        dtype=str,                 # Cargar todo como texto para evitar problemas de formato
        on_bad_lines="skip",        # Saltar líneas mal formadas en versiones recientes de pandas
        low_memory=False           # Evitar problemas de memoria con archivos grandes
    )
    
    print("Archivo cargado exitosamente.")
    print(adu2024nov.head())  # Mostrar las primeras filas para verificar la carga

except FileNotFoundError:
    print(f"Error: El archivo '{ruta}' no fue encontrado.")
except pd.errors.ParserError as e:
    print(f"Error al analizar el archivo: {e}")
## Archivo cargado exitosamente.
##   DESPACHO CIFRADO,"OPERACION","DESTINACION","REGIMEN","OFICIALIZACION","CANCELACION","AÑO","MES","ADUANA","COTIZACION","MEDIO TRANSPORTE","CANAL","ITEM","PAIS ORIGEN","PAIS PROCEDENCIA/DESTINO","USO","UNIDAD MEDIDA ESTADISTICA","CANTIDAD ESTADISTICA","KILO NETO","KILO BRUTO","FOB DOLAR","FLETE DOLAR","SEGURO DOLAR","IMPONIBLE DOLAR","IMPONIBLE GS","AJUSTE A INCLUIR","AJUSTE A DEDUCIR","POSICION ","RUBRO","DESC CAPITULO","DESC PARTIDA","DESC POSICION","MERCADERIA","MARCA ITEM","ACUERDO","DERECHO","ISC","SERVICIO","RENTA","IVA","OTROS","TOTAL"
## 0  24DA000000497989,"EXPORTACION","EFC1","EXPORTA...                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
## 1  24DA000000497990,"EXPORTACION","EFC1","EXPORTA...                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
## 2  24DA000000497991,"EXPORTACION","EFC1","EXPORTA...                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
## 3  24DA000000497992,"EXPORTACION","EFC1","EXPORTA...                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
## 4  24DA000000497993,"EXPORTACION","EFC1","EXPORTA...
adu2024nov.head()
##   DESPACHO CIFRADO,"OPERACION","DESTINACION","REGIMEN","OFICIALIZACION","CANCELACION","AÑO","MES","ADUANA","COTIZACION","MEDIO TRANSPORTE","CANAL","ITEM","PAIS ORIGEN","PAIS PROCEDENCIA/DESTINO","USO","UNIDAD MEDIDA ESTADISTICA","CANTIDAD ESTADISTICA","KILO NETO","KILO BRUTO","FOB DOLAR","FLETE DOLAR","SEGURO DOLAR","IMPONIBLE DOLAR","IMPONIBLE GS","AJUSTE A INCLUIR","AJUSTE A DEDUCIR","POSICION ","RUBRO","DESC CAPITULO","DESC PARTIDA","DESC POSICION","MERCADERIA","MARCA ITEM","ACUERDO","DERECHO","ISC","SERVICIO","RENTA","IVA","OTROS","TOTAL"
## 0  24DA000000497989,"EXPORTACION","EFC1","EXPORTA...                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
## 1  24DA000000497990,"EXPORTACION","EFC1","EXPORTA...                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
## 2  24DA000000497991,"EXPORTACION","EFC1","EXPORTA...                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
## 3  24DA000000497992,"EXPORTACION","EFC1","EXPORTA...                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
## 4  24DA000000497993,"EXPORTACION","EFC1","EXPORTA...

# reemplazar todas las comas en los numeros decimales por puntos

adu2024nov=adu2024nov.replace(",",".",regex=True)
# tipos de variables de la base

adu2024nov.dtypes
## DESPACHO CIFRADO,"OPERACION","DESTINACION","REGIMEN","OFICIALIZACION","CANCELACION","AÑO","MES","ADUANA","COTIZACION","MEDIO TRANSPORTE","CANAL","ITEM","PAIS ORIGEN","PAIS PROCEDENCIA/DESTINO","USO","UNIDAD MEDIDA ESTADISTICA","CANTIDAD ESTADISTICA","KILO NETO","KILO BRUTO","FOB DOLAR","FLETE DOLAR","SEGURO DOLAR","IMPONIBLE DOLAR","IMPONIBLE GS","AJUSTE A INCLUIR","AJUSTE A DEDUCIR","POSICION ","RUBRO","DESC CAPITULO","DESC PARTIDA","DESC POSICION","MERCADERIA","MARCA ITEM","ACUERDO","DERECHO","ISC","SERVICIO","RENTA","IVA","OTROS","TOTAL"    object
## dtype: object

configurar correctamente los formatos

# cantidad de filas del archivo
adu2024nov.shape
## (79939, 1)
adu2024nov.columns
## Index(['DESPACHO CIFRADO,"OPERACION","DESTINACION","REGIMEN","OFICIALIZACION","CANCELACION","AÑO","MES","ADUANA","COTIZACION","MEDIO TRANSPORTE","CANAL","ITEM","PAIS ORIGEN","PAIS PROCEDENCIA/DESTINO","USO","UNIDAD MEDIDA ESTADISTICA","CANTIDAD ESTADISTICA","KILO NETO","KILO BRUTO","FOB DOLAR","FLETE DOLAR","SEGURO DOLAR","IMPONIBLE DOLAR","IMPONIBLE GS","AJUSTE A INCLUIR","AJUSTE A DEDUCIR","POSICION ","RUBRO","DESC CAPITULO","DESC PARTIDA","DESC POSICION","MERCADERIA","MARCA ITEM","ACUERDO","DERECHO","ISC","SERVICIO","RENTA","IVA","OTROS","TOTAL"'], dtype='object')

Alternativas con python para la carga y manejo de grandes volumenes de datos

Como ejemplo vamos a cargar y juntar las bases de aduanas de los año 2010 al 2024 para los meses de enero a diciembre

import pandas as pd


# Definir la ruta base de los archivos
ruta = "G:/Mi unidad/ADUANASPY/aduana_"

# Lista de años (2010 a 2024)
years = range(2024, 2025)

# Lista de meses
meses = ["ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO", 
         "JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE"]

# Lista para almacenar los DataFrames
bases = []

# Cargar los archivos CSV
for year in years:
    for mes in meses:
        ruta1 = f"{ruta}{year}_{mes}.csv"  # Construcción de ruta más eficiente
        try:
            base = pd.read_csv(ruta1, sep=None, engine="python")
            bases.append(base)
            print(f"Cargado: {ruta1}")  # Mensaje opcional para seguimiento
        except FileNotFoundError:
            print(f"Archivo no encontrado: {ruta1}")  # Aviso si falta un archivo
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_ENERO.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_FEBRERO.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_MARZO.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_ABRIL.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_MAYO.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_JUNIO.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_JULIO.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_AGOSTO.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_SEPTIEMBRE.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_OCTUBRE.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_NOVIEMBRE.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_DICIEMBRE.csv
# Concatenar todos los DataFrames
if bases:
    aduanas = pd.concat(bases, ignore_index=True)
    print("Bases de datos concatenadas exitosamente.")
    print(aduanas.head())  # Mostrar primeras filas
else:
    print("No se cargaron datos.")
## Bases de datos concatenadas exitosamente.
##    DESPACHO CIFRADO    OPERACION DESTINACION  ...         IVA     OTROS       TOTAL
## 0  24DA000000000001  IMPORTACION        IFC1  ...          ,0        ,0          ,0
## 1  24DA000000000002  IMPORTACION        IC04  ...  13646088,0  545844,0  14870842,0
## 2  24DA000000000002  IMPORTACION        IC04  ...  14448801,0  577952,0  15745599,0
## 3  24DA000000000002  IMPORTACION        IC04  ...     71610,0    2864,0    124837,0
## 4  24DA000000000002  IMPORTACION        IC04  ...    334454,0   13378,0    364471,0
## 
## [5 rows x 42 columns]
aduanas.shape
## (2115112, 42)

Alternativa con la libreia polars

import polars as pl
import os

# Definir la ruta base de los archivos
ruta = "G:/Mi unidad/ADUANASPY/aduana_"

# Lista de años (2010 a 2024)
years = range(2024, 2025)

# Lista de meses
meses = ["ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO", 
         "JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE"]

# Lista para almacenar los DataFrames
bases = []

# Cargar los archivos CSV
for year in years:
    for mes in meses:
        ruta1 = f"{ruta}{year}_{mes}.csv"  # Construcción de ruta más eficiente
        
        if not os.path.exists(ruta1):  # Verifica si el archivo existe antes de intentar leerlo
            print(f"Archivo no encontrado: {ruta1}")
            continue
        
        try:
            base = pl.read_csv(ruta1, try_parse_dates=True, infer_schema_length=1000)
            bases.append(base)
            print(f"Cargado: {ruta1}")  # Mensaje opcional para seguimiento
        except (IOError, pl.exceptions.ComputeError) as e:
            print(f"Error al leer el archivo {ruta1}: {e}")
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_ENERO.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_FEBRERO.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_MARZO.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_ABRIL.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_MAYO.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_JUNIO.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_JULIO.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_AGOSTO.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_SEPTIEMBRE.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_OCTUBRE.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_NOVIEMBRE.csv
## Cargado: G:/Mi unidad/ADUANASPY/aduana_2024_DICIEMBRE.csv
# Concatenar todos los DataFrames
if bases:
    aduanas = pl.concat(bases)
    print("Bases de datos concatenadas exitosamente.")
    print(aduanas.head())  # Mostrar primeras filas
else:
    print("No se cargaron datos.")
## Bases de datos concatenadas exitosamente.
## shape: (5, 42)
## ┌────────────┬────────────┬────────────┬────────────┬───┬───────┬───────────┬──────────┬───────────┐
## │ DESPACHO   ┆ OPERACION  ┆ DESTINACIO ┆ REGIMEN    ┆ … ┆ RENTA ┆ IVA       ┆ OTROS    ┆ TOTAL     │
## │ CIFRADO    ┆ ---        ┆ N          ┆ ---        ┆   ┆ ---   ┆ ---       ┆ ---      ┆ ---       │
## │ ---        ┆ str        ┆ ---        ┆ str        ┆   ┆ str   ┆ str       ┆ str      ┆ str       │
## │ str        ┆            ┆ str        ┆            ┆   ┆       ┆           ┆          ┆           │
## ╞════════════╪════════════╪════════════╪════════════╪═══╪═══════╪═══════════╪══════════╪═══════════╡
## │ 24DA000000 ┆ IMPORTACIO ┆ IFC1       ┆ IMPORTACIO ┆ … ┆ ,0    ┆ ,0        ┆ ,0       ┆ ,0        │
## │ 000001     ┆ N          ┆            ┆ N DE       ┆   ┆       ┆           ┆          ┆           │
## │            ┆            ┆            ┆ FRACCIONES ┆   ┆       ┆           ┆          ┆           │
## │            ┆            ┆            ┆ COMP…      ┆   ┆       ┆           ┆          ┆           │
## │ 24DA000000 ┆ IMPORTACIO ┆ IC04       ┆ IMPORTACIO ┆ … ┆ ,0    ┆ 13646088, ┆ 545844,0 ┆ 14870842, │
## │ 000002     ┆ N          ┆            ┆ N A        ┆   ┆       ┆ 0         ┆          ┆ 0         │
## │            ┆            ┆            ┆ CONSUMO    ┆   ┆       ┆           ┆          ┆           │
## │            ┆            ┆            ┆ CON DOCU…  ┆   ┆       ┆           ┆          ┆           │
## │ 24DA000000 ┆ IMPORTACIO ┆ IC04       ┆ IMPORTACIO ┆ … ┆ ,0    ┆ 14448801, ┆ 577952,0 ┆ 15745599, │
## │ 000002     ┆ N          ┆            ┆ N A        ┆   ┆       ┆ 0         ┆          ┆ 0         │
## │            ┆            ┆            ┆ CONSUMO    ┆   ┆       ┆           ┆          ┆           │
## │            ┆            ┆            ┆ CON DOCU…  ┆   ┆       ┆           ┆          ┆           │
## │ 24DA000000 ┆ IMPORTACIO ┆ IC04       ┆ IMPORTACIO ┆ … ┆ ,0    ┆ 71610,0   ┆ 2864,0   ┆ 124837,0  │
## │ 000002     ┆ N          ┆            ┆ N A        ┆   ┆       ┆           ┆          ┆           │
## │            ┆            ┆            ┆ CONSUMO    ┆   ┆       ┆           ┆          ┆           │
## │            ┆            ┆            ┆ CON DOCU…  ┆   ┆       ┆           ┆          ┆           │
## │ 24DA000000 ┆ IMPORTACIO ┆ IC04       ┆ IMPORTACIO ┆ … ┆ ,0    ┆ 334454,0  ┆ 13378,0  ┆ 364471,0  │
## │ 000002     ┆ N          ┆            ┆ N A        ┆   ┆       ┆           ┆          ┆           │
## │            ┆            ┆            ┆ CONSUMO    ┆   ┆       ┆           ┆          ┆           │
## │            ┆            ┆            ┆ CON DOCU…  ┆   ┆       ┆           ┆          ┆           │
## └────────────┴────────────┴────────────┴────────────┴───┴───────┴───────────┴──────────┴───────────┘
aduanas.shape
## (2115112, 42)