Saltar al contenido

Leer y escribir archivos CSV en Python usando Module & Pandas

¿Qué es un archivo CSV?

UNA. Archivo CSV Es un tipo simple de archivo de texto sin formato que utiliza una estructura única para organizar los datos tabulares. El formato de archivo CSV estándar se define con datos de fila y columna donde una nueva línea termina cada fila para comenzar la siguiente fila, y cada columna está separada por una coma.

CSV es un formato común para el intercambio de datos porque es compacto, simple y general. Muchos servicios en línea permiten a sus usuarios exportar datos tabulares desde el sitio web en un archivo CSV. Los archivos CSV se abrirán en Excel y casi todas las bases de datos tienen una herramienta para permitir la importación desde archivos CSV.

En este tutorial, aprenderá:

Archivo CSV de muestra.

Los datos en forma de tabla se denominan CSV (valores separados por comas), literalmente «valores separados por comas». Este es un formato de texto destinado a presentar datos tabulares. Cada línea del archivo es una línea de la tabla. Los valores de las columnas individuales están separados por un símbolo separador: coma (,), punto y coma (;) u otro símbolo. Python puede leer y procesar CSV fácilmente.

Considere la siguiente Tabe

Detalles de la mesa

Lenguaje de programaciónDiseñada porSer vistoExtensión
PitónGuido van Rossum1991.py
JavaJames Gosling1995.Java
C ++Stroustrup Bjarne1983.cpp

Puede ilustrar esta tabla en csv como se muestra a continuación.

Datos CSV

Lenguaje de programación, Diseñado por, Apariencias, Extensión

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C ++, Bjarne Stroustrup, 1983, .cpp

Como puede ver, cada fila es una nueva línea y cada columna está separada por una coma. A continuación, se muestra un ejemplo de cómo se ve un archivo CSV.

Descargar datos CSV

Módulo CSV Python

Python proporciona un módulo CSV para manejar archivos CSV. Para leer / escribir datos, debe recorrer las capas del CSV. Debe utilizar el método de división para recuperar datos de columnas especificadas.

Funciones del módulo CSV

Puede encontrar las siguientes funciones en la documentación del módulo CSV:

En este tutorial, nos centraremos solo en las funciones de lectura y escritura que le permitirán editar, modificar y manipular los datos en un archivo CSV.

Cómo leer un archivo CSV

A continuación, se explica cómo leer el archivo CSV en Python:

Paso 1) Para leer datos de archivos CSV, debe utilizar la función de lector para generar un objeto de lector.

La función de lector está desarrollada para tomar cada fila del archivo y hacer una lista de todas las columnas. Luego, debe seleccionar la columna para la que desea los datos variables.

Suena mucho más complicado de lo que es. Observamos este código Python para leer el archivo CSV y descubrimos que no es tan difícil trabajar con un archivo csv.


#import necessary modules
import csv
with open('X:data.csv','rt')as f:
  data = csv.reader(f)
  for row in data:
        print(row)

Paso 2) Cuando ejecute el programa anterior, la salida será:


['Programming language; Designed by; Appeared; Extension']
['Python; Guido van Rossum; 1991; .py']
['Java; James Gosling; 1995; .java']
['C++; Bjarne Stroustrup;1983;.cpp']

Cómo leer CSV como diccionario

También puede utilizar DictReader para leer archivos CSV. Los resultados se interpretan como un diccionario en el que la secuencia de encabezado es la clave y otras secuencias son valores.

Considere el siguiente código


#import necessary modules
import csv

reader = csv.DictReader(open("file2.csv"))
for raw in reader:
    print(raw)

El resultado de este código es:


OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])
OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])
OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])

Y esta forma de leer datos desde un archivo CSV es mucho más fácil que el método anterior. Sin embargo, esta no es la mejor forma de leer datos.

Cómo escribir un archivo CSV

A continuación, se explica cómo escribir un archivo CSV en Python:

Una vez que tenga un conjunto de datos que desee almacenar en un archivo CSV, debe usar una función de escritor (). Para repetir los datos sobre las filas (líneas), debe usar la función escritor ().

Considere el siguiente ejemplo. Escribimos datos en un archivo «writeData.csv» donde la plantilla es una salida.


#import necessary modules
import csv

with open('X:writeData.csv', mode="w") as file:
    writer = csv.writer(file, delimiter=",", quotechar=""", quoting=csv.QUOTE_MINIMAL)

    #way to write to csv file
    writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])
    writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])
    writer.writerow(['Java', 'James Gosling', '1995', '.java'])
    writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])

El resultado en el archivo csv es:

Programming language, Designed by, Appeared, Extension 
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp

Leer archivos CSV con Pandas

Pandas es una biblioteca de código abierto que le permite importar CSV a Python y manipular datos. Los pandas brindan una manera fácil de crear, manipular y eliminar datos.

Necesitas instalar la biblioteca de pandas para ordenar pip install pandas . En Windows, ejecutará este comando en el símbolo del sistema mientras está en Linux en la Terminal.

El marco de datos CSV en pandas es muy rápido y fácil de leer:


#import necessary modules
import pandas
result = pandas.read_csv('X:data.csv')
print(result)

El resultado de muestra de Pandas CSV leyó:

Programming language, Designed by, Appeared, Extension 
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp	

Biblioteca muy útil. En solo tres líneas de código tienes el mismo resultado que antes. Los pandas saben que los nombres de las columnas estaban en la primera línea del CSV y los usarán automáticamente.

Escribir en archivos CSV con Pandas

Es tan fácil de leer en un archivo CSV como Pandas. Aquí puedes convencerlo. Primero debe crear un DataFrame basado en la siguiente escritura de Python en el código CSV.


from pandas import DataFrame
C = {'Programming language': ['Python','Java', 'C++'],
        'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],
        'Appeared': ['1991', '1995', '1985'],
        'Extension': ['.py', '.java', '.cpp'],
    }
df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])
export_csv = df.to_csv (r'X:pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored
print (df)

Aquí está la salida

Programming language, Designed by, Appeared, Extension
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

Y se crea un archivo CSV en la ubicación especificada.

Conclusión

Entonces, ahora sabe cómo usar el método ‘csv’ y leer y escribir datos en formato CSV también. Los archivos CSV se utilizan ampliamente en aplicaciones de software porque son fáciles de leer y administrar, y debido a su pequeño tamaño, su procesamiento y transmisión son relativamente rápidos.

El módulo csv proporciona varias funciones y clases que le permiten leer y escribir fácilmente. Puede consultar la documentación oficial de Python y obtener algunos consejos y módulos más interesantes. CSV es la mejor manera de guardar, ver y enviar datos. En realidad, aprender no es tan difícil como parece al principio. Pero con un poco de práctica, lo dominarás.

Pandas es otra gran opción para leer archivos CSV.

Además, hay otras formas de analizar archivos de texto con bibliotecas como ANTLR, PLY y PlyPlus. Todos pueden manejar análisis de alto rendimiento, y si la manipulación simple de cadenas no funciona, hay expresiones regulares que puede usar.