Nombre | Edad | Sexo |
---|---|---|
Diego | 25 | M |
Maria | 30 | F |
Pedro | 40 | M |
print("hola mundo")
## hola mundo
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
import matplotlib.pyplot as plt
# dibujar el cuadro generado anteriormente
data.plot(kind = "line")
plt.show()
# 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
texto="Texto"
texto
## 'Texto'
edad=45
edad
## 45
altura=120.56
altura
## 120.56
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'>
# 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}
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
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)
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
# 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')
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)
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)