Saltar al contenido

Lectura y escritura de archivos CSV en Python usando CSV Module & Pandas

diciembre 8, 2019

¿Qué es un archivo CSV?

Un archivo CSV es un tipo de archivo de texto plano que utiliza una estructuración específica para organizar los datos tabulares. CSV es un formato común para el intercambio de datos, ya que es compacto, simple y general. Muchos servicios en línea permiten a sus usuarios exportar datos tabulares del sitio web a un archivo CSV. Los archivos de CSV se abrirán en Excel, y casi todas las bases de datos tienen una herramienta para permitir la importación desde un archivo CSV. El formato estándar está definido por los datos de filas y columnas. Además, cada fila termina con una nueva línea para comenzar la siguiente. También dentro de la fila, cada columna está separada por una coma.

En este tutorial, aprenderá:

  • ¿Qué es un archivo CSV?
  • Archivo de muestra CSV.
  • Módulo Python CSV
  • Funciones del módulo CSV
  • Lectura de archivos CSV
  • Lectura como diccionario
  • Escritura en archivos CSV
  • Lectura de archivos CSV con pandas
  • Escritura en archivos CSV con Pandas

Archivo de muestra CSV.

Los datos en forma de tablas también se llaman CSV (valores separados por comas) – literalmente “valores separados por comas”. Se trata de un formato de texto destinado a la presentación de datos tabulares. Cada línea del fichero es una línea de la tabla. Los valores de las columnas individuales están separados por un símbolo separador – una coma (,), un punto y coma (;) u otro símbolo. CSV puede ser fácilmente leído y procesado por Python.

Considere la siguiente tabla

Datos de tabla

Lenguaje de programación Diseñado por Appeared Extension Python Guido van Rossum 1991.py Java James Gosling 1995.java C++ Bjarne Stroustrup 1983.cpp

Puede representar esta tabla en csv como se indica a continuación.

Datos CSV

Lenguaje de programación, Diseñado por, Aparecido, 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. Este es un ejemplo de cómo se ve un archivo CSV.

Módulo Python CSV

Python proporciona un módulo CSV para manejar archivos CSV. Para leer/escribir datos, es necesario realizar un bucle a través de las filas del CSV. Es necesario utilizar el método de partición para obtener datos de las columnas especificadas.

Funciones del módulo CSV

En la documentación del módulo CSV encontrará las siguientes funciones:

  • csv.field_size_limit – devuelve el tamaño máximo del campo
  • csv.get_dialect – obtiene el dialecto que está asociado con el nombre
  • csv.list_dialects – muestra todos los dialectos registrados
  • csv.reader – lee datos de un archivo csv
  • csv.register_dialect – asocia el dialecto con el nombre
  • csv.writer – escribe datos en un archivo csv
  • csv.unregister_dialect – borra el dialecto asociado con el nombre del registro de dialectos
  • csv.QUOTE_ALL – Citar todo, independientemente del tipo.
  • csv.QUOTE_MINIMAL – Campos de cita con caracteres especiales
  • csv.QUOTE_NONNUMERIC – Citar todos los campos que no sean valor numérico
  • csv.QUOTE_NONE – No citar nada en la salida

En este tutorial, nos vamos a centrar únicamente en las funciones de lectura y escritura que le permiten editar, modificar y manipular los datos de un archivo CSV.

Cómo leer un archivo CSV

Para leer datos de archivos CSV, debe utilizar la función de lectura para generar un objeto de lectura.

La función de lectura se desarrolla para tomar cada fila del archivo y hacer una lista de todas las columnas. A continuación, debe seleccionar la columna para la que desea los datos variables.

Suena mucho más complicado de lo que es. Echemos un vistazo a este ejemplo, y descubriremos que trabajar con un archivo csv no es tan difícil.

#importar los módulos necesarios
importar csv
con open($0027X:data.csv$0027,$0027rt$0027) como f:
datos = csv.reader(f)
para la línea de datos:
imprimir(fila)
>

Cuando ejecute el programa anterior, la salida será:

[$0027Lenguaje de programación; Diseñado por; Aparecido; Extensión$0027]
[$0027Python; Guido van Rossum; 1991; .py$0027]
[$0027Java; James Gosling; 1995; .java$0027]
[$0027C++; Bjarne Stroustrup;1983;.cpp$0027]
>

Cómo leer un CSV como diccionario

También puede utilizar DictReader para leer archivos CSV. Los resultados se interpretan como un diccionario donde la fila de encabezado es la clave, y otras filas son valores.

Considere el siguiente código

#importar los módulos necesarios
importar csv
reader = csv.DictReader(open(“file2.csv”))
para el crudo en el lector:
print(raw)
>

El resultado de este código es:

OrderedDict([(($0027Lenguaje de programación$0027, $0027Python$0027), ($0027Designed by$0027, $0027Guido van Rossum$0027), ($0027Appeared$0027, $0027 1991$0027), ($0027Extension$0027, $0027 .py$0027)])
OrderedDict([((($0027Lenguaje de programación$0027, $0027Java$0027), ($0027Designed by$0027, $0027James Gosling$0027)), ($0027Appeared$0027, $0027 1995$0027), ($0027Extension$0027, $0027.java$0027)])
OrderedDict([(($0027Lenguaje de programación$0027, $0027C++$0027), ($0027Designed by$0027, $0027 Bjarne Stroustrup$0027), ($0027Appeared$0027, $0027 1985$0027), ($0027Extensión$0027, $0027.cpp$0027)])>>.

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

Cómo escribir un archivo CSV

Cuando se dispone de un conjunto de datos que se desea almacenar en un archivo CSV, se debe utilizar la función writer(). Para iterar los datos sobre las filas (líneas), tiene que usar la función writerow().

Considere el siguiente ejemplo. Escribimos los datos en un archivo “writeData.csv” donde el delimitador es un apóstrofe.

#importar los módulos necesarios
importar csv
con open($0027X:writeData.csv$0027, mode=$0027w$0027) como archivo:
writer = csv.writer(file, delimiter=$0027,$0027,$0027, quotechar=$0027″$0027, quoting=csv.QUOTE_MINIMAL)
#forma de escribir en un archivo csv
writer.writerow([$0027Lenguaje de programación$0027, $0027Designed by$0027, $0027Appeared$0027, $0027Extension$0027])
writer.writerow([$0027Python$0027, $0027Guido van Rossum$0027, $00271991$0027, $0027.py$0027])
writer.writerow([$0027Java$0027, $0027James Gosling$0027, $00271995$0027, $0027.java$0027])
writer.writerow ([$0027C++$0027, $0027Bjarne Stroustrup$0027, $00271985$0027, $0027.cpp$0027])
>

El resultado en el archivo csv es:

Lenguaje de programación, Diseñado por, Aparecido, Extensión
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp

Lectura de archivos CSV con pandas

Pandas es una librería de código abierto que permite realizar manipulación de datos en Python. Los pandas proporcionan una manera fácil de crear, manipular y eliminar los datos.

Debes instalar la librería de pandas con el comando <code>pip instalar pandas</code>. En Windows, ejecutará este comando en el Símbolo del sistema mientras que en Linux en el Terminal.

La lectura del CSV en un DataFrame de pandas es muy rápida y fácil:

#importar los módulos necesarios
importar pandas
resultado = pandas.read_csv($0027X:data.csv$0027)
imprimir(resultado)
>

Resultado

Lenguaje de programación, Diseñado por, Aparecido, Extensión
0 Python, Guido van Rossum, 1991, .py
1 Java, James Gosling, 1995, .java
2 C++, Bjarne Stroustrup,1983,.cpp

Una biblioteca muy útil. En sólo tres líneas de código se obtiene el mismo resultado que antes. Los pandas saben que la primera línea del CSV contenía nombres de columnas, y los utilizará automáticamente.

Escribir en archivos CSV con Pandas

Escribir en un archivo CSV con Pandas es tan fácil como leerlo. Aquí usted puede convencer en él. Primero debe crear DataFrame basado en el siguiente código.

de importación de pandas DataFrame
C = {$0027Lenguaje de programación$0027: [$0027Python$0027,$0027Java$0027, $0027C++$0027],
        Diseñado por$0027: [$0027Guido van Rossum$0027, $0027James Gosling$0027, $0027Bjarne Stroustrup$0027],
        Apareció$0027: [$00271991$0027, $00271995$0027, $00271985$0027],
        Extensión": "py", "java", "cpp",
    }
df = DataFrame(C, columns= [$0027Programming language$0027, $0027Designed by$0027, $0027Appeared$0027, $0027Extension$0027])
export_csv = df.to_csv (r$0027X:pandaresult.csv$0027, index = None, header=True) # aquí tiene que escribir la ruta, donde se almacenará el archivo del resultado
imprimir (df)

>

Aquí está el resultado

Lenguaje de programación, Diseñado por, Aparecido, Extensión
0 Python, Guido van Rossum, 1991, .py
1 Java, James Gosling, 1995, .java
2 C++, Bjarne Stroustrup,1983,.cpp

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

Conclusión

Así que ahora ya sabes cómo usar el método $0027csv$0027 y también leer y escribir datos en formato CSV. Los archivos CSV son ampliamente utilizados en aplicaciones de software porque son fáciles de leer y gestionar, y su pequeño tamaño los hace relativamente rápidos para su procesamiento y transmisión.

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

Pandas es una gran alternativa para leer archivos CSV.

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

https://openanalytics.es/funcion-python-round-con-ejemplos/(abre en una nueva pestaña)