Introducción a Pandas – Lección 1

Compartir esta publicación

Share on facebook
Share on linkedin
Share on twitter
Share on email

Introducción

Hoy queremos presentar uno de los primeros capítulos de formación interna en el que introducimos los fundamentos de las herramientas de tratamiento de DataScience. Hablamos de Pandas, Numpy y Matplotlib. Pandas es una biblioteca de terceros para la computación numérica basada en NumPy. Destaca en el manejo de datos unidimensionales (1D) etiquetados con objetos Series y datos bidimensionales (2D) con objetos DataFrame.

NumPy es una biblioteca de terceros para la computación numérica, optimizada para trabajar con arrays unidimensionales y multidimensionales. Su tipo principal es el tipo de array llamado ndarray. Esta biblioteca contiene muchas rutinas para el análisis estadístico.
Matplotlib es una biblioteca de terceros para la visualización de datos. Funciona bien en combinación con NumPy, SciPy y Pandas.

Creación, lectura y escritura de datos

Para trabajar con datos necesitamos crear estructuras de datos coherentes para almacenarlos, o leerlos de una fuente externa. Por último, pero no menos importante, necesitamos guardarlos después de las modificaciones que hayamos podido hacer.

Las dos estructuras de datos fundamentales son las Series y los Dataframes. Para simplificar los conceptos podríamos decir que una Serie es similar al diccionario de python (par clave-valor) y un Dataframe es una matriz (bidimensional) con sus correspondientes filas y columnas. Usamos Dataframe en caso de que tengamos más de un valor para cada claveUsamos Dataframe en caso de que tengamos más de un valor para cada clave.

pandas 01
Fig. 1 . DataFrame con 3 columnas diferentes y un índice

Creación de series desde cero

La serie es una matriz unidimensional etiquetada capaz de contener cualquier tipo de datos (enteros, cadenas, números de punto flotante, objetos Python, etc.). Las etiquetas de los ejes se denominan colectivamente índice. Los métodos básicos para crear una Serie son:

A. De la lista:

list = [7, 'Heisenberg', 3.14, -1789710578, 'Happy Eating!']
serie = pd.Series(list)
pandas 02

El índice es como una dirección, así es como se puede acceder a cualquier punto de datos a través del Dataframe o Series. Las filas y las columnas, en el caso del Dataframe, tienen índices, los índices de las filas se llaman índice y para las columnas sus nombres generales de columna. Podemos especificar el índice de esta manera:

list = [7, 'Heisenberg', 3.14, -1789710578, 'Happy Eating!']
index=['A', 'Z', 'C', 'Y', 'E']

s = pd.Series(list, index=index)
pandas 03

B. Del diccionario:

d = {'Chicago': 1000, 'New York': 1300, 'Portland': 900, 'San Francisco': 1100,
     'Austin': 450, 'Boston': None}
cities = pd.Series(d)
pandas 04

Creación de Dataframe desde cero

Podemos crear Dataframe de diferentes maneras pero tres de las más utilizadas son:

Del diccionario

employees = pd.DataFrame([{"name":"David",
                   "surname":"Suarez",
                   "age":32},
                   {"name":"Gema",
                   "surname":"Parreño",
                   "age":31}], columns=["name","surname","age"])
pandas 05

Si queremos nombrar cada fila con un índice no numérico, podemos especificarlo en este atributo.

employees_by_dni = pd.DataFrame([{"name":"David",
                   "surname":"Suarez",
                   "age":32},
                   {"name":"Gema",
                   "surname":"Parreño",
                   "age":31}], columns=["name","surname","age"], index=["76789764A", "78765493G"])
pandas 06

De CSV

El archivo CSV (comma-separated values) es un archivo de texto delimitado que utiliza una coma para separar los valores. Cada línea del archivo es un registro de datos. Cada registro consta de uno o varios campos, separados por comas.

Para leer un fichero externo en formato CSV podemos hacerlo llamando al método read_csv dentro de pandas:

Import pandas as pd 
from_csv = pd.read_csv('./path/to/file.csv', index_col=0)

Podemos especificar con el atributo index cuál de las columnas queremos que sea el nombre de la fila.

Normalmente en los CSV la primera columna suele ser el índice, es decir, la dirección por la que podemos acceder a toda la información de cada fila (Ejemplo: get[0] nos daría toda la información de la fila 0, pero también puede ser una cadena get[‘david’]). Podemos especificar con el atributo index, cuál de las columnas del csv queremos que sea el nombre de las filas, es decir, el atributo por el que luego accederemos a toda la información de la fila.

from_csv = pd.read_csv('./path/to/file.csv', index_col=3)

De PARQUET

Al igual que un archivo CSV, Parquet es un tipo de archivo. La diferencia es que Parquet está diseñado como un formato de almacenamiento en columnas para soportar el procesamiento de datos complejos.


Parquet está orientado a las columnas y está diseñado para ofrecer un almacenamiento eficiente de los datos en columnas (bloques, grupos de filas, trozos de columnas…) en comparación con los basados en filas, como CSV.


Para leer un fichero externo en formato Parquet podemos hacerlo llamando al método read_parquet dentro de pandas:

Import pandas as pd 
from_parquet = pd.read_parquet('./path/to/file.parquet)

De JSON

En el caso de que el archivo tenga el formato externo como JSON:

from_json = pd.read_json('./path/to/file.json')

Escribiendo el DataFrame

Una vez creado el marco de datos, efectivamente tenemos varias formas de guardar la información en un archivo externo. Y podemos guardarlo en formato CSV o JSON. Utilizaremos los métodos pandas to_csv y to_json y lo guardaremos con el nombre de las extensiones correspondientes:

df_to_write.to_csv("/path/to/file.csv")
df_to_write.to_json("/path/to/file.json")

Por último, pero no menos importante, podemos citar que los formatos SQL también pueden ser utilizados desde pandas para leer y escribir en una base de datos SQL.

Entrena tus habilidades

Si quieres llevar tus habilidades más allá en Ciencia de Datos, hemos creado un curso que puedes descargar gratuitamente aquí enlace.

En el próximo capítulo nos adentraremos en el maravilloso mundo de la indexación, selección y asignación. También daremos una visión general sobre el filtrado y la transformación de datos con pandas.

Conversion Post ES

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Suscríbete a nuestro boletín de noticias

Recibe actualizaciones de los últimos descubrimientos tecnológicos

Acerca de Apiumhub

Apiumhub reúne a una comunidad de desarrolladores y arquitectos de software para ayudarte a transformar tu idea en un producto potente y escalable. Nuestro Tech Hub se especializa en Arquitectura de Software, Desarrollo Web & Desarrollo de Aplicaciones Móviles. Aquí compartimos con usted consejos de la industria & mejores prácticas, basadas en nuestra experiencia.

Posts populares
PDF gratuito Software Interview Series

¿Tienes un proyecto desafiante?

Podemos trabajar juntos