Manejo de archivos .CSV con Python

Manejo de archivos .CSV con Python

Una guía práctica para trabajar con datos tabulares

El formato CSV (Comma Separated Values) es ampliamente utilizado para almacenar y transferir datos tabulares de una manera sencilla y legible. Python, con su amplia biblioteca de herramientas, facilita el manejo de archivos .CSV de manera eficiente. En este artículo, exploraremos cómo trabajar con archivos .CSV en Python y cómo realizar diversas operaciones para procesar datos tabulares.

Lectura de archivos .CSV:

Para leer un archivo .CSV en Python, podemos utilizar el módulo csv. Supongamos que tenemos un archivo llamado "datos.csv" con la siguiente estructura:

nombre,edad,ciudad
Juan,25,Madrid
María,30,Barcelona
Carlos,28,Valencia

El siguiente código muestra cómo leer este archivo y obtener los datos en una lista de diccionarios:

import csv

datos = []

with open('datos.csv', newline='') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        datos.append(row)

Escritura de archivos .CSV:

Si queremos escribir datos en un archivo .CSV, podemos usar el módulo csv en modo escritura. Supongamos que tenemos una lista de diccionarios llamada nuevos_datos:

nuevos_datos = [
    {'nombre': 'Laura', 'edad': '27', 'ciudad': 'Sevilla'},
    {'nombre': 'Pedro', 'edad': '32', 'ciudad': 'Málaga'}
]

with open('nuevos_datos.csv', 'w', newline='') as csvfile:
    fieldnames = ['nombre', 'edad', 'ciudad']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    for row in nuevos_datos:
        writer.writerow(row)

Manipulación de datos en archivos .CSV:

Podemos realizar diversas operaciones para manipular los datos en archivos .CSV. Por ejemplo, supongamos que queremos obtener una lista de todas las ciudades presentes en el archivo "datos.csv":

ciudades = []

with open('datos.csv', newline='') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        ciudades.append(row['ciudad'])

Filtrado de datos en archivos .CSV:

Si deseamos filtrar los datos en función de ciertos criterios, podemos utilizar list comprehensions o el módulo pandas, una poderosa herramienta de análisis de datos en Python. Supongamos que queremos obtener una lista de personas mayores de 25 años en el archivo "datos.csv":

personas_mayores_25 = [row for row in datos if int(row['edad']) > 25]

Cálculo de estadísticas en archivos .CSV:

Para calcular estadísticas en archivos .CSV, como el promedio de edades, podemos usar el módulo pandas:

import pandas as pd

df = pd.read_csv('datos.csv')
promedio_edades = df['edad'].mean()

Combinación de archivos .CSV:

Si tenemos múltiples archivos .CSV y queremos combinarlos en uno solo, podemos usar el módulo pandas:

import pandas as pd

archivos = ['datos1.csv', 'datos2.csv', 'datos3.csv']
dfs = [pd.read_csv(archivo) for archivo in archivos]
datos_combinados = pd.concat(dfs, ignore_index=True)
datos_combinados.to_csv('datos_combinados.csv', index=False)

El manejo de archivos .CSV en Python es una habilidad esencial para cualquier desarrollador o analista de datos. Con el módulo csv y la biblioteca pandas, podemos leer, escribir, procesar y analizar datos tabulares de manera eficiente y efectiva. Ya sea que estemos trabajando con datos de una hoja de cálculo o de una base de datos, Python nos ofrece las herramientas necesarias para manejar archivos .CSV de manera sencilla y práctica. Así que ¡adelante y comienza a trabajar con archivos .CSV en Python para aprovechar todo su potencial en el análisis de datos y la manipulación de información!