Combina dos archivos CSV en uno

Combina fácilmente online dos archivos CSV en uno

Funcionamiento:

Este programa combina dos archivos ".csv" cuyos campos deben estar separados por un "punto y coma".

Selecciona el archivo primario y el archivo secundario y luego haz clic en el botón "Combinar".

Tanto el archivo primario como el archivo secundario deben tener una columna que se llame "codigocomun".

Las líneas del archivo secundario que coincidan con la columna "codigocomun" en el archivo primario serán agregadas al archivo primario en un nuevo archivo CSV que después de descargarlo será borrado del servidor.

* Selecciona y sube los archivos desde tu ordenador.


Combina fácilmente dos archivos CSV en uno usando Python

En este artículo, exploraremos cómo utilizar un programa Python para combinar de manera sencilla dos archivos CSV separados por punto y coma. Este programa es ideal cuando necesitamos fusionar datos de dos archivos diferentes basados en una columna común. Utilizaremos la potente biblioteca pandas de Python para manipular los archivos CSV y generar un nuevo archivo combinado.


El programa que vamos a desarrollar nos permitirá combinar dos archivos CSV: uno principal y otro secundario. Ambos archivos deben tener una columna llamada «codigocomun» que actuará como clave de combinación. El objetivo es agregar las líneas del archivo secundario al archivo principal, manteniendo solo las líneas que tengan un valor coincidente en la columna «codigocomun«.

Para empezar, necesitaremos tener instalado Python en nuestro sistema. También necesitaremos la biblioteca pandas, que podemos instalar fácilmente utilizando el gestor de paquetes pip.

pip install pandas

Una vez que tengamos todo configurado, podemos proceder a ejecutar el programa. Al iniciarlo, se abrirá una interfaz gráfica donde podremos seleccionar los archivos CSV correspondientes. Primero, elegiremos el archivo principal y luego el archivo secundario.

combina dos archivos csv

Una vez seleccionados los archivos, el programa utilizará la biblioteca pandas para cargarlos en DataFrames, una estructura de datos tabular muy versátil. A continuación, se realizará la combinación de los DataFrames utilizando la columna «codigocomun» como clave. Esto asegurará que solo se agreguen las líneas del archivo secundario que coincidan con el archivo principal.

Una vez combinados los DataFrames, el programa generará un nuevo archivo CSV que contendrá todas las líneas del archivo principal y las líneas del archivo secundario que tengan un valor correspondiente en la columna «codigocomun«. Podremos elegir la ubicación y el nombre del archivo combinado antes de guardarlo.

Conclusión:

Con este programa Python y la biblioteca pandas, hemos simplificado el proceso de combinación de archivos CSV. Ahora podemos fusionar datos de manera rápida y eficiente, ahorrando tiempo y esfuerzo en comparación con métodos manuales o como excel. La interfaz gráfica proporciona una experiencia fácil de usar, lo que lo convierte en una herramienta accesible para usuarios de todos los niveles de habilidad.

Python y pandas nos brindan un poderoso conjunto de herramientas para trabajar con datos, y este programa es solo un ejemplo de lo que se puede lograr. Experimenta y adapta este código según tus necesidades específicas.

¡Espero que encuentres útil esta herramienta de combinación de archivos CSV!

import tkinter as tk
from tkinter import filedialog, messagebox
import pandas as pd


def combinar_archivos():
    # Obtener la ruta de los archivos primario y secundario seleccionados
    ruta_primario = filedialog.askopenfilename(
        title="Seleccionar archivo primario", filetypes=[("Archivos CSV", "*.csv")])
    ruta_secundario = filedialog.askopenfilename(
        title="Seleccionar archivo secundario", filetypes=[("Archivos CSV", "*.csv")])

    if ruta_primario and ruta_secundario:
        try:
            # Cargar archivos CSV en DataFrames
            df_primario = pd.read_csv(ruta_primario, sep=';')
            df_secundario = pd.read_csv(ruta_secundario, sep=';')

            # Combinar los DataFrames basados en la columna "codigocomun"
            df_resultado = pd.merge(
                df_primario, df_secundario, on='codigocomun', how='left')

            # Guardar el DataFrame combinado en un nuevo archivo CSV
            ruta_salida = filedialog.asksaveasfilename(
                title="Guardar archivo combinado", defaultextension=".csv", filetypes=[("Archivos CSV", "*.csv")])
            if ruta_salida:
                df_resultado.to_csv(ruta_salida, sep=';', index=False)
                messagebox.showinfo(
                    "Completado", "El archivo combinado ha sido creado exitosamente.")
            else:
                messagebox.showwarning(
                    "Advertencia", "No se seleccionó una ubicación de archivo válida.")
        except Exception as e:
            messagebox.showerror("Error", str(e))
    else:
        messagebox.showwarning(
            "Advertencia", "No se seleccionaron archivos válidos.")


# Crear la ventana principal
ventana = tk.Tk()
ventana.title("Combinador de archivos CSV")
ventana.geometry("400x200")

# Descripción del programa
lbl_descripcion = tk.Label(ventana, text="Este programa combina dos archivos CSV separados por punto y coma.\n"
                                         "Selecciona el archivo primario y el archivo secundario y luego haz clic en el botón 'Combinar'.\n"
                                         "Las líneas del archivo secundario que coincidan con la columna 'codigocomun' en el archivo primario\n"
                                         "serán agregadas al archivo primario en un nuevo archivo CSV.")
lbl_descripcion.pack()

# Etiqueta y botón para seleccionar el archivo primario
lbl_primario = tk.Label(ventana, text="Archivo primario:")
lbl_primario.pack()
btn_primario = tk.Button(
    ventana, text="Seleccionar archivo", command=combinar_archivos)
btn_primario.pack()

# Etiqueta y botón para seleccionar el archivo secundario
lbl_secundario = tk.Label(ventana, text="Archivo secundario:")
lbl_secundario.pack()
btn_secundario = tk.Button(
    ventana, text="Seleccionar archivo", command=combinar_archivos)
btn_secundario.pack()

ventana.mainloop()

Foto de Perfil de Juan Luis Martel

Juan Luis Martel.

Profesional en Tecnologías Integradas - Desarrollo Web y Electrónica.

Las Palmas de Gran Canaria, España

Soy un apasionado de la programación con experiencia en Wordpress, PHP, PIC, Microcontroladores y ASM. Además, soy Técnico Especialista en Electrónica y también tengo experiencia como profesor en este campo. Mi pasión por la electrónica me ha llevado a combinar mis habilidades en programación con mi conocimiento técnico, lo que me permite crear soluciones innovadoras y eficientes en mis proyectos de paginas webs y de electrónica.

¡No te vayas sin valorar el contenido!

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 5 / 5. Recuento de votos: 2

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Ya que has encontrado útil el contenido...

🙏 Ayúdame y compártelo en tus redes sociales ¡Significa mucho para mí! - Gracias

¡Siento que el contenido no te haya sido útil o gustado! 😔

¡Déjame mejorar este contenido!

Dime, ¿cómo crees que puedo mejorar este contenido? 🙏 ¡Significa mucho para mí! - Gracias

Deja un comentario