Saltar a contenido

4.2.2. CREAR DATAFRAMES

Creación de un DataFrame a partir de un fichero CSV o Excel

Dependiendo del tipo de fichero, existen distintas funciones para importar un DataFrame desde un fichero.

  • read_csv(fichero.csv, sep=separador, header=n, index_col=m, na_values=no-validos, decimal=separador-decimal, thousands=separador-miles) : Devuelve un objeto del tipo DataFrame con los datos del fichero CSV fichero.csv usando como separador de los datos la cadena separador. Como nombres de columnas se utiliza los valores de la lista n y como nombres de filas los valores de la lista m. Si no se indica m se utilizan como nombres de filas los enteros empezando en 0. Los valores incluídos en la lista no-validos se convierten en NaN. Para los datos numéricos se utiliza como separador de decimales el carácter indicado en separador-decimal.

  • read_excel(fichero.xlsx, sheet_name=hoja, header=n, index_col=m, na_values=no-validos, decimal=separador-decimal) : Devuelve un objeto del tipo DataFrame con los datos de la hoja de cálculo hoja del fichero Excel fichero.xlsx. Como nombres de columnas se utiliza los valores de la lista n y como nombres de filas los valores de la lista m. Si no se indica m se utilizan como nombres de filas los enteros empezando en 0. Los valores incluídos en la lista no-validos se convierten en NaN. Para los datos numéricos se utiliza como separador de decimales el carácter indicado en separador-decimal.

Podemos leer otro tipo de ficheros, con las extensiones mas utilizadas, con las librerías:

read_table
read_json
read_xml
read_pickle
read_sql_table....

Lo podemos leer directamente del directorio:

import pandas as pd
# Importación del fichero datos.csv
df = pd.read_csv('datos.csv', sep=';')
df.head()#muestra empezando por cabecera, df.tail() muestra los últimos
También lo podemos descargar directamente de una web:

# Importación del fichero datos/colesteroles.csv
df = pd.read_csv('https://raw.githubusercontent.com/asalber/manual-python/master/datos/colesteroles.csv', sep=';', decimal=',')
df.head()

Con diferente separación:

df = pd.read_csv('salida.csv', sep='|')
df.head()
# Importación del fichero ovnis.csv
df = pd.read_csv('ovnis.csv')
tupla = df.shape#devuelve una tupla con el número de filas y columnas
print(f"Nº filas = {tupla[0]}  nº columnas = {tupla[1]}")
print(len(df))
df.head(200)

Leer solo una parte del fichero (útil para ficheros grandes).

df = pd.read_csv('ovnis.csv', nrows=7)

Leer ficheros xls

df = pd.read_excel('ejemplo3.xlsx')
df.head()
Leer ficheros xls en una hoja distinta de la principal:

df = pd.read_excel('ejemplo3.xlsx', sheet_name = 'Hoja2')
df.head()

Leer excel sin cabecera:

df = pd.read_excel("ejemplo4.xlsx", sheet_name="Hoja3", header=None)
df

Ficheros PDF con TIKA

Apache Tika es una librería que se utiliza para la detección de diferentes tipos de documentos y la extracción de contenido de varios formatos de archivo. Se instala la librería Tika con el siguiente comando:

pip install tika
from tika import parser
Para extraer el contenido del archivo PDF

parsed_pdf = parser.from_file("sample.pdf") 
data = parsed_pdf['content']  
print(data) 
print(type(data))

Exportación de fichero

Podemos exportar un Dataframe a un fichero con diferentes formatos:

  • df.to_csv(fichero.csv, sep=separador, columns=booleano, index=booleano) : Exporta el DataFrame df al fichero fichero.csv en formato CSV usando como separador de los datos la cadena separador. Si se pasa True al parámetro columns se exporta también la fila con los nombres de columnas y si se pasa True al parámetro index se exporta también la columna con los nombres de las filas.

  • df.to_excel(fichero.xlsx, sheet_name = hoja, columns=booleano, index=booleano) : Exporta el DataFrame df a la hoja de cálculo hoja del fichero fichero.xlsx en formato Excel. Si se pasa True al parámetro columns se exporta también la fila con los nombres de columnas y si se pasa True al parámetro index se exporta también la columna con los nombres de las filas.