A continuación vamos a ver ejemplos de código sobre cómo podemos cargar diferentes tipos de archivos. Este código no es ejecutable, ya que necesitarías tener en tu directorio de trabajo los ficheros para poder ejecutarlo. Sin embargo, lo puedes usar como referencia.
Un fichero CSV (Comma-Separated Values, Valores Separados por Comas) es un fichero que permite representar información en formato de tabla, donde las columnas se separan normalmente por una coma (,
) (aunque también se admiten otros caracteres) y las filas por un salto de línea.
Normalmente, siempre que queramos leer un CSV
necesitaremos cargarlo en un DataFrame de Pandas, así que el siguiente código lo posibilitaría:
import pandas as pd
# Se establece la ruta al fichero que queremos leer
file = "input.csv"
# La función 'read_csv' permite llevar a cabo esta lectura, transformando el fichero en un DataFrame
df = pd.read_csv(file, sep = ",")
La función read_csv
de Pandas tiene una gran cantidad de parámetros que permiten adaptar la lectura a las características del fichero. Puedes encontrar la documentación de esta función aquí.
Un fichero de Microsoft Excel (con extensión XLSX o XLS) es en sí una definición de tabla pura, por lo que permite también ser transformado en un DataFrame de Pandas:
import pandas as pd
# Se establece la ruta del fichero que queremos leer
file = "input.xlsx"
# La función 'read_excel' permite llevar a cabo esta lectura, transformando el fichero en un DataFrame
df = pd.read_excel(file, sheet_name = "Hoja 1")
La función read_excel
de Pandas tiene una gran cantidad de parámetros que permiten adaptar la lectura a las características del fichero. Puedes encontrar la documentación de esta función aquí.
Un fichero JSON (JavaScript Object Notation, Notación de Objeto de JavaScript) es un formato de archivo cuya función es la de transmitir información estructurada. Su lógica de ordenación tiene puntos similares al XML, pero la notación es distinta. En un fichero JSON, los elementos están jerarquizados.
Este tipo de ficheros pueden leerse de varias formas, ya que hay una relación directa entre los diccionarios en Python y este tipo de archivos. También lo podemos transformar en un DataFrame de Pandas si cuenta con una estructura regular.
Supongamos, por ejemplo, la siguiente estructura:
{
"filename": "invoice.pdf",
"numPages": 3,
"fields": {
"customerName": "Telefónica S.A.",
"invoiceNumber": "1234ABCD",
"totalAmount": "15.000",
"currency": "EUR"
}
}
Este tipo de elementos JSON solo puede ser transformado en un diccionario en Python. No tiene sentido leerlo como un DataFrame de Pandas, ya que no cuenta con una estructura afín, como veremos más adelante. Este fichero podríamos leerlo con el paquete json
de Python:
import json
# Se establece la ruta del fichero que queremos leer
file = "input.json"
with open(file, "r") as f:
data = json.load(f)
Supongamos, por ejemplo, la siguiente estructura:
{
"files": [
{
"filename": "invoice1.pdf",
"numPages": 3
},
{
"filename": "invoice2.docx",
"numPages": 10
},
{
"filename": "invoice3.pdf",
"numPages": 2
}
],
"status": 200
}
Este ejemplo de JSON replica una respuesta de un servidor tras haberle enviado una consulta. Parte de su contenido (realmente el que nos interesa) tiene una estructura en formato tabla, ya que cada elemento de la lista representaría una fila, y cada elemento (diccionario) representaría la columna. Así lo transformaríamos en DataFrame:
import pandas as pd
# Se establece la ruta del fichero que queremos leer
file = "input.json"
# Primero leemos el contenido del JSON
with open(file, "r") as f:
data = json.load(f)
# La función 'from_dict' permite llevar a cabo la transformación de JSON a DataFrame
df = pd.DataFrame.from_dict(data)
Un fichero TXT (TeXT, TeXTo) es un formato de archivo plano que contiene información estructurada o no. En este tipo de ficheros podemos replicar CSVs, JSONs, etcétera. Por eso, las lecturas previamente vistas también aplican a este tipo de ficheros. Para leer este tipo de ficheros, Python tiene una forma muy sencilla de hacerlo:
# Se establece la ruta del fichero que queremos leer
file = "input.txt"
# Leemos el contenido del TXT
with open(file, "r") as f:
data = f.read()
data = f.readline(10)
data = f.readlines()
En el ejemplo anterior se utilizan tres funciones, cada una con un resultado distinto. Supongamos que el fichero anterior tenía el siguiente contenido:
Hola qué tal
Este fichero es un documento de ejemplo
Para leerlo a través de Python
read()
¶Esta función lee todo el contenido del fichero en formato string incluyendo los saltos de línea como "\n". En el ejemplo anterior, el resultado sería:
"Hola qué tal\nEste fichero es un documento de ejemplo\nPara leerlo a través de Python"
.
readline(10)
¶Esta función lee los primeros n
caracteres del fichero. En el ejemplo anterior, el resultado sería:
"Este fiche"
.
Como en la función le pasamos un 10 como argumento, entonces lee los primeros 10 caracteres.
readlines()
¶Esta función lee todo el contenido del fichero separando las líneas para devolverlo en formato de lista. En el ejemplo anterior, el resultado sería:
["Hola qué tal", "Este fichero es un documento de ejemplo", "Para leerlo a través de Python"]
.