1.- Lectura de los datos

PREGUNTA: En Python, como bajar los datos de la encuesta de estructura salarial del ine

Respuesta


import requests

# URL del archivo ZIP de la EES 2022
url_zip = "https://www.ine.es/ftp/microdatos/salarial/datos_2022.zip"

# Nombre del archivo ZIP a guardar
nombre_zip = "datos_2022.zip"

# Descargar el archivo ZIP
response = requests.get(url_zip)
if response.status_code == 200:
    with open(nombre_zip, "wb") as file:
        file.write(response.content)
    print(f"Archivo ZIP descargado y guardado como {nombre_zip}")
else:
    print(f"Error al descargar el archivo: {response.status_code}datos españoles?

Pregunta: como extraer los datos del zip file

import zipfile
import os

# Carpeta donde se extraerán los archivos
carpeta_destino = "datos_ees_2022"

# Crear la carpeta si no existe
os.makedirs(carpeta_destino, exist_ok=True)

# Descomprimir el archivo ZIP
with zipfile.ZipFile(nombre_zip, 'r') as zip_ref:
    zip_ref.extractall(carpeta_destino)
    print(f"Archivos extraídos en la carpeta: {carpeta_destino}")

Pregunta: ¿cómo leer los datos en Python?

import pandas as pd

# Ruta del archivo de datos (ajusta según el nombre real del archivo extraído)
archivo_datos = os.path.join(r"F:\clase\clase24_25\laboratorio\lab3\datos_ees_2022\CSV", "EES_2022.tab")  # Ejemplo: ajusta el nombre del archivo

# Cargar el archivo en un DataFrame
df = pd.read_csv(archivo_datos, sep=";", encoding="ISO-8859-1")  # Ajusta el separador y la codificación según sea necesario

# Mostrar las primeras filas del DataFrame
print(df.head())

Problema: no me lee bien los datos: el separador es un tabulador ’

 #Cargar el archivo en un DataFrame
df = pd.read_csv(archivo_datos, sep="\t", encoding="ISO-8859-1")  # Ajusta el separador y la codificación según sea necesario

# Mostrar las primeras filas del DataFrame
print(df.head())
#Guardamos los datos en un formato pickle

nombre_pickle = "datos_2022.pkl"
df.to_pickle(nombre_pickle)

 #Cargar el archivo en un DataFrame
df = pd.read_csv(archivo_datos, sep="\t", encoding="ISO-8859-1")  # Ajusta el separador y la codificación según sea necesario

# Mostrar las primeras filas del DataFrame
print(df.head())