Los archivos CSV (Valores Separados por Comas) son uno de los formatos de datos más comunes utilizados en ciencia de datos, aprendizaje automático y analítica. Python es un lenguaje de programación poderoso que provee varias herramientas y bibliotecas para trabajar con archivos CSV. En este artículo, exploraremos los conceptos básicos de trabajar con archivos CSV en Python, incluyendo leer, escribir y manipular datos. También cubriremos algunos temas avanzados, como manejar archivos CSV grandes, tratar con datos faltantes y realizar operaciones en datos CSV usando las bibliotecas NumPy y Pandas.
Abrir Archivo CSV y Leer Datos con Python
Para abrir y leer un archivo CSV en Python, puedes usar el módulo integrado csv.
import csv
with open('example.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
En este ejemplo, utilizamos la función csv.reader()
para leer el contenido del archivo CSV llamado example.csv
. Luego recorremos las filas del archivo usando un bucle for
e imprimimos
cada row
en la consola.
import csv
with open('example.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['Name', 'Age', 'Gender'])
writer.writerow(['John', '25', 'Male'])
writer.writerow(['Jane', '30', 'Female'])
En este ejemplo, utilizamos la función csv.writer()
para escribir data
en un archivo CSV llamado example.csv
. Creamos un nuevo archivo con el modo w
y especificamos newline=''
para evitar saltos de línea extra. Luego utilizamos la función writerow()
para escribir cada row
de data
en el archivo.
Al utilizar estos ejemplos de código, puedes proporcionar fácilmente lectura de CSV o carga de CSV.
Cómo Guardar en un Archivo CSV en Python
Guardar datos en un archivo CSV es una tarea común en Python. Los archivos CSV son fáciles de leer y se pueden abrir fácilmente en cualquier software de hoja de cálculo. En Python, podemos usar el módulo csv
para escribir en un archivo CSV. Aquí hay algunos ejemplos de cómo guardar en un archivo CSV en Python.
Este ejemplo demuestra cómo escribir una simple lista de valores en un archivo CSV.
import csv
# Example data
data = [['Name', 'Age', 'Gender'], ['Alice', '25', 'Female'], ['Bob', '30', 'Male'], ['Charlie', '35', 'Male']]
# Open csv file in write mode
with open('example.csv', mode='w') as file:
writer = csv.writer(file)
# Write data to csv file
writer.writerows(data)
En el código anterior:
- Importamos el módulo
csv
. - Creamos una lista simple de valores llamada
data
. - Abrimos el archivo CSV en modo de escritura usando la función
open()
y especificamos elmode
como'w'
. - Creamos un objeto
csv.writer
y pasamos el objeto de archivo al escritor. - Utilizamos el método
writerows()
para escribir los datos en el archivo CSV.
Este ejemplo muestra cómo escribir un diccionario de valores en un archivo CSV.
import csv
# Example data
data = [{'Name': 'Alice', 'Age': '25', 'Gender': 'Female'},
{'Name': 'Bob', 'Age': '30', 'Gender': 'Male'},
{'Name': 'Charlie', 'Age': '35', 'Gender': 'Male'}]
# Open csv file in write mode
with open('example.csv', mode='w', newline='') as file:
fieldnames = ['Name', 'Age', 'Gender']
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader()
# Write data to csv file
for item in data:
writer.writerow(item)
En el código anterior:
- Importamos el módulo
csv
. - Creamos una lista de diccionarios llamada
data
. -
- Abrimos el fichero CSV en modo escritura utilizando la función
open()
y especificamos elmode
como'w'
. También establecemosnewline
como''
para evitar que se inserten filas en blanco entre cada fila.
- Abrimos el fichero CSV en modo escritura utilizando la función
-
- Creamos un objeto
csv.DictWriter
y le pasamos el objeto fichero alwriter
. También proporcionamos losfieldnames
como una lista.
- Creamos un objeto
- Usamos el método
writeheader()
para escribir losfieldnames
en el fichero CSV. -
- Usamos el método
writerow()
para escribir cadarow
de datos en el fichero CSV.
- Usamos el método
Usando el módulo csv
de Python, puedes guardar fácilmente tus datos en un archivo CSV. Estos ejemplos pueden ser modificados para satisfacer sus necesidades específicas.
Cómo convertir JSON a CSV con Python
Convertir datos
json a formato CSV es una tarea común en el procesamiento de datos
. Python ofrece una forma fácil y eficiente de convertir datos
JSON a formato CSV utilizando módulos integrados como json
y csv
.
Uso de los módulos JSON y CSV
import json
import csv
# Load JSON data
with open('data.json', 'r') as file:
data = json.load(file)
# Open CSV file for writing
with open('data.csv', 'w', newline='') as file:
writer = csv.writer(file)
# Write header row
writer.writerow(data[0].keys())
# Write data rows
for item in data:
writer.writerow(item.values())
Usando la biblioteca Pandas
import pandas as pd
# Load JSON data
with open('data.json', 'r') as file:
data = json.load(file)
# Convert to dataframe
df = pd.DataFrame(data)
# Write to CSV file
df.to_csv('data.csv', index=False)
En ambos ejemplos, cargamos los datos JSON desde un archivo, los convertimos en un objeto Python, y luego los escribimos en un archivo CSV utilizando el módulo csv
o la librería pandas. Con estos métodos, puedes convertir fácilmente datos JSON a formato CSV en Python.
Leer CSV con Pandas
Pandas es una potente librería de análisis de datos de código abierto para Python que ofrece estructuras de datos fáciles de usar para la manipulación y el análisis de datos. En pandas
, leer y manipular archivos CSV es simple y eficiente.
Cargar CSV con Pandas
Para cargar un fichero CSV con Pandas, usamos read_csv()
. Veamos como podemos cargar un fichero CSV usando Pandas:
import pandas as pd
df = pd.read_csv('filename.csv')
print(df.head())
Análisis de archivo CSV usando Pandas
Después de cargar el archivo CSV, necesitamos analizar los datos para extraer la información requerida. Pandas ofrece una gran cantidad de operaciones para analizar y manipular datos CSV. Aquí hay un ejemplo de cómo analizar datos usando Pandas:
import pandas as pd
df = pd.read_csv('filename.csv')
df = df[df['column_name'] == 'required_value']
print(df.head())
Escribir DataFrame a CSV usando Pandas
Después de procesar los datos CSV, es posible que queramos escribir el nuevo DataFrame en un nuevo archivo CSV. Pandas proporciona una forma fácil de escribir el DataFrame en archivos CSV usando to_csv()
. Aquí hay un ejemplo:
import pandas as pd
df = pd.read_csv('filename.csv')
# Perform operations to extract the required data
new_df = df[df['column_name'] == 'required_value']
# Write the new DataFrame to a new CSV file
new_df.to_csv('new_file.csv', index=False)
Exportar a CSV
Exportar data
a CSV (Valores Separados por Comas) es una tarea común en el procesamiento de data
. Aquí hay dos maneras de exportar data
a CSV en Python:
Usando el módulo csv
El módulo csv es un módulo incorporado en Python que permite la lectura y escritura de archivos CSV. Aquí hay un ejemplo de cómo exportar un diccionario a un archivo CSV usando el módulo csv
:
import csv
data = {'name': ['John', 'Jane', 'Adam'], 'age': [20, 25, 30]}
with open('data.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(data.keys())
writer.writerows(zip(*data.values()))
# This code creates a CSV file with the following format:
#
#
# name,age
# John,20
# Jane,25
# Adam,30
Usando el módulo pandas
Aquí hay un ejemplo de cómo exportar un DataFrame de pandas a un archivo CSV.
import pandas as pd
data = {'name': ['John', 'Jane', 'Adam'], 'age': [20, 25, 30]}
df = pd.DataFrame(data)
df.to_csv('data.csv', index=False)
Este código crea un archivo CSV con el mismo formato que el ejemplo anterior. El parámetro index=False
se utiliza para eliminar la columna de índice de fila por defecto del archivo CSV.
Leer CSV Línea por Línea
Para leer un archivo CSV en Python línea por línea, podemos usar el csv
incorporado.
Leyendo CSV Línea por Línea
import csv
with open('example.csv', newline='') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print(row)
En el ejemplo anterior, abrimos el archivo CSV example.csv
y lo asignamos a la variable csvfile
. Luego creamos un objeto csv.reader
, sobre el cual podemos iterar línea por línea usando un bucle for
. Cada row
en el bucle está representada como una lista de valores.
Escribiendo en Nueva Línea en CSV
import csv
with open('example.csv', mode='a', newline='') as csvfile:
writer = csv.writer(csvfile)
row = ['value1', 'value2', 'value3']
writer.writerow(row)
En el ejemplo anterior, abrimos el archivo CSV example.csv
en modo de 'append' (mode
) y lo asignamos a la variable csvfile
. Luego creamos un objeto csv.writer
, que podemos usar para escribir una nueva línea en el archivo CSV utilizando el método writerow()
. La variable row
es una lista de valores para escribir en la nueva línea del archivo CSV.
Usando estos ejemplos simples, podemos leer y escribir fácilmente en archivos CSV línea por línea en Python.
Cómo Leer una Columna CSV en Python
Para leer una columna CSV en Python, puedes usar la función csv.DictReader()
para leer archivos CSV como diccionarios. Aquí hay dos ejemplos:
import csv
with open('example.csv') as file:
reader = csv.DictReader(file)
for row in reader:
print(row['column_name'])
En este ejemplo de código, primero import
el módulo csv
. Luego utilizamos la sentencia with
para abrir el archivo CSV example.csv
. Creamos un objeto DictReader
llamado reader
usando el archivo CSV file
. Luego iteramos a través de cada fila
en reader
e imprimimos
el valor de column_name
en cada fila.
import pandas as pd
data = pd.read_csv('example.csv')
column_data = data['column_name']
print(column_data)
En este ejemplo de código, primero import
el módulo pandas
y creamos un DataFrame
llamado data
usando la función read_csv()
y pasando el nombre del archivo CSV example.csv
. Luego, asignamos los datos en column_name
a una nueva variable column_data
. Finalmente, hacemos print
de column_data
.
¡Contribuya con nosotros!
No dudes en contribuir a los tutoriales de Python en GitHub: crea un fork, actualiza el contenido y emite un pull request.