Está en la página 1de 48

Módulo

Obtención y preparación de datos

Aprendizaje Esperado 2
Aprendizaje Esperado 2
La librería Pandas

Aprendizaje Esperado 2
Manipular datos utilizando estructuras de Series y DataFrames acorde a
la biblioteca Pandas para resolver un problema.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

2. La librería Pandas

Contexto
Pandas desempeña un papel fundamental en el análisis de datos, ya que
proporciona a los profesionales y científicos de datos una potente
herramienta para gestionar, limpiar, explorar y transformar datos de
manera eficiente. Con Pandas, es posible cargar conjuntos de datos de
diversas fuentes, desde archivos CSV hasta bases de datos SQL, y
organizarlos en estructuras de datos tabulares conocidas como
DataFrames. Esta estructura tabular permite el acceso a los datos por
etiquetas y facilita la indexación y selección de subconjuntos de datos, lo
que es esencial para el análisis exploratorio.

Además, Pandas ofrece herramientas para limpiar datos, manejar valores


faltantes, filtrar información relevante y transformar los datos según las
necesidades específicas del análisis. También es ampliamente utilizado en
el procesamiento y análisis de series temporales, gracias a su capacidad
para manejar datos de fechas y horarios. La integración de Pandas con
bibliotecas de visualización como Matplotlib y Seaborn permite crear
gráficos y visualizaciones impactantes para comunicar los resultados del
análisis.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Reseña de la librería Pandas

Pandas es un paquete de Python que proporciona estructuras de datos


rápidas, flexibles y expresivas diseñadas para hacer que el trabajo con
datos "relacionales" o "etiquetados" sea fácil e intuitivo. Pretende ser el
elemento fundamental de alto nivel para realizar análisis de datos
prácticos y del mundo real en Python.

Las principales características de esta librería son:

● Define nuevas estructuras de datos basadas en los arrays de la librería


NumPy, pero con nuevas funcionalidades.
● Permite leer y escribir fácilmente ficheros en formato CSV, Excel y
bases de datos SQL.
● Permite acceder a los datos mediante índices o nombres para filas y
columnas.
● Ofrece métodos para reordenar, dividir y combinar conjuntos de datos.
● Permite trabajar con series temporales.
● Realiza todas estas operaciones de manera muy eficiente.

¿Para qué se utiliza?


Pandas se utiliza en una amplia variedad de aplicaciones relacionadas con
el análisis de datos y la manipulación de datos estructurados. Algunos de
los usos más comunes de Pandas incluyen:

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

● Análisis de Datos: Pandas es ampliamente utilizado para cargar,


limpiar y explorar conjuntos de datos. Proporciona herramientas para
realizar cálculos estadísticos, resúmenes de datos y visualizaciones
preliminares.

● Preprocesamiento de Datos: Antes de aplicar modelos de aprendizaje


automático, es esencial preparar y limpiar los datos. Pandas ayuda en
la eliminación de valores atípicos, valores faltantes y en la
normalización de datos.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

● Análisis Exploratorio de Datos (EDA): Pandas facilita la realización de


un EDA exhaustivo, lo que incluye la visualización de datos, la
identificación de tendencias, la detección de patrones y la generación
de estadísticas descriptivas.

● Procesamiento de Series Temporales: Es una herramienta valiosa para


el análisis y procesamiento de datos de series temporales, como
registros financieros, datos climáticos y más.


Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

● Manipulación de Datos Financieros: Pandas es ampliamente utilizado


en finanzas para gestionar y analizar datos financieros, como precios
de acciones, datos de carteras y más.

● Bases de Datos y ETL: Se utiliza en la extracción, transformación y


carga (ETL) de datos desde y hacia bases de datos, lo que facilita la
migración de datos y la
manipulación de datos en
tiempo real.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

● Análisis de Ciencias Sociales y Humanidades: En campos como la


sociología, la psicología y la lingüística, Pandas es útil para el
procesamiento y análisis de datos cualitativos y cuantitativos.

● Análisis Biológico y de Salud: En biología y ciencias de la salud, Pandas


se utiliza para analizar datos genómicos, datos clínicos y otros tipos de
datos biológicos.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

● Investigación Científica y Experimentación: En laboratorios y


experimentos científicos, Pandas es una herramienta valiosa para
analizar y visualizar datos experimentales.

● Análisis Geoespacial: En aplicaciones de geoinformática, Pandas es


utilizado para el procesamiento y análisis de datos geoespaciales.

El tipo de dato Serie


Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Pandas dispone de tres estructuras de datos diferentes:

● Series: Estructura de una dimensión.

● DataFrame: Estructura de dos dimensiones (tablas).

● Panel: Estructura de tres dimensiones (cubos).

Estas estructuras se construyen a partir de arrays de la librería NumPy,


añadiendo nuevas funcionalidades.

Características del tipo de dato Serie


Son estructuras similares a los arrays de una dimensión. Son homogéneas,
es decir, sus elementos tienen que ser del mismo tipo, y su tamaño es
inmutable, es decir, no se puede cambiar, aunque sí su contenido.

Dispone de un índice que asocia un nombre a cada elemento de la serie,


a través de la cual se accede al elemento.

Características Principales de las Series:

● Estructura Unidimensional: Las Series son arreglos unidimensionales


que pueden contener datos de un solo tipo, como números enteros,
flotantes, cadenas, fechas, etc.

● Indexación Etiquetada: Cada elemento de una Serie tiene una etiqueta


(índice) asociada que permite un acceso más fácil y claro a los datos.
Puedes personalizar los índices si es necesario.

● Flexibilidad en Datos: Las Series pueden contener datos de cualquier


tipo y son capaces de manejar valores faltantes (NaN) de manera
eficiente.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

● Funciones y Operaciones: Las Series admiten una amplia variedad de


funciones y operaciones que facilitan el análisis de datos, como
estadísticas descriptivas, operaciones aritméticas y funciones de
agregación.

Creación de una Serie


Puedes crear Series de diversas formas:

● A partir de una lista o arreglo de datos.

● A partir de un diccionario, donde las claves se convierten en etiquetas


de índice.

● Utilizando una secuencia de fechas y horarios para manejar datos de


series temporales.

● Aplicando funciones generadoras, como range().

Ejemplo:

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Obtención de datos de una Serie


Para obtener datos de una Serie en Pandas, puedes utilizar varias técnicas
de indexación y selección.

1. Indexación por Etiqueta: Puedes acceder a los elementos de una Serie


utilizando etiquetas de índice. Para hacerlo, utiliza corchetes y
proporciona la etiqueta deseada.

2. Indexación por Posición: También puedes acceder a los elementos de


una Serie por posición utilizando la función iloc[]. La indexación por
posición comienza desde cero. Aunque también se puede pasar el
índice entre corchetes, sin usar iloc.

3. Selección por Rango: Puedes seleccionar un rango de elementos


utilizando la notación de rebanado (slice).

4. Selección por Condición: Puedes seleccionar elementos que cumplan


una condición específica utilizando una expresión booleana

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

5. Selección por Lista de Etiquetas: Puedes seleccionar elementos por


una lista de etiquetas.

6. Obtención de una Lista de Valores: Para obtener una lista de los


valores en la Serie, puedes utilizar el atributo values.

Además, existen funciones que nos ayudarán a obtener otros datos de la


serie:

Operaciones sobre una Serie


Pandas ofrece una amplia gama de operaciones que se pueden realizar
sobre una serie.

Operaciones Aritméticas Básicas

Puedes realizar operaciones aritméticas básicas en Series, como suma,


resta, multiplicación y división. Estas operaciones se aplican elemento por
elemento.

Funciones Matemáticas y Estadísticas


Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Pandas proporciona muchas funciones matemáticas y estadísticas que se


pueden aplicar a una Serie. Algunos ejemplos incluyen mean(), max(),
min(), std(), sum(), median(), count(), entre otras.

Operaciones Lógicas

Pandas admite operaciones lógicas que generan Series de valores


booleanos. Puedes utilizar operadores como >, <, ==, !=, & (and), | (or) para
realizar comparaciones.

Funciones Personalizadas

Puedes aplicar tus propias funciones personalizadas a una Serie utilizando


apply(). Esto te permite realizar operaciones más complejas en los datos.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Otro ejemplo usando una función con argumentos:

Filtrado de una serie

Para filtrar una serie y quedarse con los valores que cumplen una
determinada condición se utiliza el siguiente método:

s[condicion] : Devuelve una serie con los elementos de la serie s que se


corresponden con el valor True de la lista booleana condición. condición
debe ser una lista de valores booleanos de la misma longitud que la serie.

Filtrado Inverso

También puedes filtrar una Serie para obtener elementos que no cumplan
con ciertas condiciones. Esto se puede lograr negando la condición con el
operador ~.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Ordenar una serie

En Pandas, puedes ordenar una Serie de diferentes maneras, ya sea


ordenándose por valores o por etiquetas de índice.

Ordenación por Valores

Puedes ordenar una Serie en función de los valores de los elementos. Para
hacerlo, utiliza el método sort_values(). Por defecto, la ordenación es
ascendente, pero puedes especificar si deseas una ordenación
descendente con el parámetro ascending.

Ordenación por Etiquetas de Índice

También puedes ordenar una Serie en función de las etiquetas de índice


utilizando el método sort_index(). Al igual que con sort_values(), puedes
especificar la dirección de la ordenación con el parámetro ascending.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Eliminar los datos desconocidos en una serie

Los datos desconocidos representan en Pandas por NaN y los nulos por
None. Tanto unos como otros suelen ser un problema a la hora de realizar
algunos análisis de datos, por lo que es habitual eliminarlos. Para
eliminarlos de una serie se utilizan los siguientes métodos:

dropna()

El método dropna() se utiliza para eliminar los elementos con valores


nulos (NaN) en una Serie. Por defecto, crea una nueva Serie sin los
elementos nulos y no modifica la Serie original.

fillna()

El método fillna() se utiliza para reemplazar los valores nulos por un valor
específico. Esto es útil cuando deseas llenar los valores nulos con un valor
predeterminado en lugar de eliminarlos.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

drop()

El método drop() te permite eliminar elementos específicos por etiqueta


de índice. Si tienes etiquetas de índice conocidas para los elementos que
deseas eliminar, puedes utilizar este método.

El tipo de dato DataFrame


Un objeto del tipo DataFrame define un conjunto de datos estructurado
en forma de tabla donde cada columna es un objeto de tipo Series, es
decir, todos los datos de una misma columna son del mismo tipo, y las
filas son registros que pueden contener datos de distintos tipos.

Un DataFrame contiene dos índices, uno para las filas y otro para las
columnas, y se puede acceder a sus elementos mediante los nombres de
las filas y las columnas.

Ejemplo:

El siguiente DataFrame contiene información sobre los alumnos de un


curso. Cada fila corresponde a un alumno y cada columna a una variable.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Características del tipo de dato DataFrame


● Bidimensional: Un DataFrame tiene dos dimensiones: filas y columnas.
Cada fila representa un registro o una observación, y cada columna
representa una variable o atributo.
● Heterogeneidad: A diferencia de las matrices de NumPy, los
DataFrames pueden contener datos de diferentes tipos (enteros,
flotantes, cadenas, objetos, etc.) en una sola estructura de datos.

● Etiquetas de Columnas y Filas: Los DataFrames tienen etiquetas de


columnas que facilitan la identificación de variables y etiquetas de
filas que permiten el acceso a registros específicos. Estas etiquetas son
conocidas como índices.

● Flexibilidad: Los DataFrames pueden contener datos faltantes o nulos,


lo que facilita el tratamiento de datos incompletos.

● Operaciones de Datos Complejas: Los DataFrames permiten realizar


una variedad de operaciones complejas, como filtrado, ordenación,
agregación, fusión de datos, y más, lo que los convierte en una
herramienta poderosa para el análisis de datos.

● Facilidad de Importación y Exportación: Los DataFrames pueden


importarse y exportarse desde y hacia una variedad de formatos de
datos, como CSV, Excel, SQL, y más.

● Métodos Estadísticos y de Análisis: Pandas proporciona una amplia


gama de métodos estadísticos y de análisis que pueden aplicarse a los
DataFrames para resumir, explorar y analizar datos.

● Integración con Visualización: Los DataFrames se integran bien con


bibliotecas de visualización de datos como Matplotlib y Seaborn, lo

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

que facilita la creación de gráficos y visualizaciones a partir de los


datos.

● Manipulación de Datos: Los DataFrames permiten la manipulación de


datos a través de operaciones de filtro, unión, pivotaje y agregación, lo
que facilita la preparación de datos para su posterior análisis.

● Amplia Adopción: Pandas es ampliamente utilizado en la comunidad


de análisis de datos y es una de las herramientas más populares para
el manejo y análisis de datos tabulares en Python.

Creación de un DataFrame
Existen varios métodos para crear un datafram:

Desde un Diccionario de Python

Un método común para crear un DataFrame es a partir de un diccionario


de Python. Cada par clave-valor en el diccionario representa una columna
del DataFrame.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Desde una Lista de Listas

También puedes crear un DataFrame a partir de una lista de listas, donde


cada lista interna representa una fila del DataFrame. Puedes especificar
los nombres de las columnas utilizando el parámetro columns.

Desde un Archivo CSV

Pandas te permite cargar datos desde archivos CSV directamente en un


DataFrame. Utiliza el método read_csv() para cargar un archivo CSV y
convertirlo en un DataFrame.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Desde un NumPy Array

Puedes crear un DataFrame a partir de un array de NumPy. Esto puede ser


útil si ya tienes datos en forma de un array NumPy y deseas trabajar con
ellos en un DataFrame.

Selección de filas o columnas en un


DataFrame
Pandas ofrece diversas formas de realizar esta selección. Aquí algunos
ejemplos:

Por Nombre de Columna

Para seleccionar una columna por su nombre, utiliza la notación de


corchetes y coloca el nombre de la columna entre comillas.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Por Atributo

Si los nombres de las columnas son identificadores válidos de Python,


puedes acceder a ellas como atributos del DataFrame.

Por Índice de Fila

Para seleccionar una fila por su índice, utiliza el método .loc[] y pasa el
índice de la fila deseada.

Por Rango de Filas

Puedes seleccionar un rango de filas utilizando el método .loc[] con dos


índices.

Usando una lista de nombres de columnas

Puedes pasar una lista de nombres de columnas entre corchetes para


seleccionar múltiples columnas a la vez.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Agregar o eliminar columnas


En un DataFrame de Pandas, puedes agregar o eliminar columnas de
diversas maneras.

Usando Asignación Directa

Puedes agregar una nueva columna asignando una Serie o una lista de
valores a un nombre de columna que aún no existe. Por ejemplo:

Usando el método insert()

El método insert() te permite agregar una columna en una ubicación


específica del DataFrame. Puedes especificar la posición de inserción, el
nombre de la columna y los valores.

Eliminar Columnas usando del

Puedes eliminar una columna existente utilizando la declaración del.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Usando el método drop()

El método drop() te permite eliminar una o varias columnas


especificando los nombres de las columnas y el eje.

Usando el método pop()

El método pop() elimina una columna y la devuelve como una Serie


separada.

Selección de elementos en un DataFrame


Para seleccionar elementos de un DataFrame, se necesita proporcionar
la(s) fila(s) y columna(s) del elemento. Esto se puede hacer de dos maneras:
mediante la etiqueta y mediante el índice.

Pandas provee de dos funciones para este objetivo: loc() e iloc().

La elección entre loc() y iloc() dependerá de tus necesidades específicas.


Si estás trabajando con etiquetas reales y nombres de columnas, loc() es
apropiado. Si necesitas seleccionar elementos por índices enteros,
entonces iloc() es la elección correcta. Ambos métodos son útiles y te
permiten realizar selecciones precisas en un DataFrame.

loc() (Localización por etiquetas): Debes usar loc() cuando quieras realizar
selecciones basadas en etiquetas de fila y columna. Esto significa que

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

puedes seleccionar filas y columnas utilizando los nombres reales de las


etiquetas. Por ejemplo:

iloc() (Localización por índices enteros): Debes usar iloc() cuando quieras
realizar selecciones basadas en índices enteros. Esto es útil cuando deseas
acceder a elementos por su posición numérica en el DataFrame. Por
ejemplo:

Algunos ejemplos

Supongamos el siguiente DataFrame:

Ejemplos de loc:

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Con lista de filas/columnas:

Ejemplos de iloc:

Con listas:

Selección condicional en un DataFrame


La selección condicional en un DataFrame de Pandas te permite filtrar las
filas que cumplan ciertas condiciones basadas en los valores de una o más
columnas. Esto es útil para extraer datos específicos de interés en función
de criterios específicos. Puedes utilizar operadores de comparación y
conectores lógicos para definir las condiciones.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Supongamos el siguiente DataFrame:

Puedes utilizar la selección condicional para filtrar las filas en las que la
edad sea mayor que 30:

O más simple:

Otro ejemplo

DataFrame:

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Filtrar empleados mayores de 30 años con un salario superior a 60000:

Filtrar empleados cuyo nombre comienza con la letra 'A' o 'D':

Aquí utilizamos el método .str para acceder a las operaciones de cadena y


isin() para verificar si el primer carácter del nombre está en la lista de
letras 'A' o 'D'.

Índices (definición, reseteo)


En un DataFrame, los índices se utilizan para etiquetar las filas, y en una
Serie, los índices etiquetan cada elemento. Los índices pueden ser
numéricos, etiquetas de texto u otro tipo de etiquetas, y son esenciales
para realizar operaciones de selección, filtrado y manipulación de datos.

Por defecto, Pandas crea un índice numérico para DataFrame y Serie si no


se especifica uno. Sin embargo, puedes personalizar los índices y asignar
etiquetas específicas a tus datos para que sean más descriptivos y
relevantes.

Reseteo de índices (Reset Index)

A veces, es útil reiniciar los índices de un DataFrame o Serie,


especialmente cuando se han realizado operaciones de filtrado o
selección que han alterado los índices originales. Para restablecer los

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

índices a una secuencia numérica predeterminada, puedes utilizar el


método reset_index().

Ejemplo:

El DataFrame resultante tendrá un nuevo índice numérico y el índice


original se convertirá en una nueva columna llamada 'index'. Puedes usar
los parámetros adicionales de reset_index() para personalizar la operación
de reinicio de índices, como eliminar el índice original o establecer uno
personalizado.

La salida antes del reseteo será:

Después del reseteo:

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Reindexar un DataFrame

Para reordenar los índices de las filas y las columnas de un DataFrame,


así como añadir o eliminar índices, se utiliza método reindex().

Salida antes del reindexado:

Luego del reindexado:

Añadir nuevas filas con índices faltantes

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Antes de reindex:

Después de reindex:

En este caso, añadimos una nueva fila con un índice faltante (3) y Pandas
completará los valores con NaN para las columnas existentes.

Eliminar filas no deseadas

En este ejemplo, eliminamos las filas no deseadas al especificar los índices


que queremos mantener en el DataFrame resultante.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Un ejemplo completo:

Su salida antes:

Después:

Métodos avanzados de un DataFrame


Agrupaciones de un DataFrame

En muchas aplicaciones es útil agrupar los datos de un DataFrame de


acuerdo a los valores de una o varias columnas (categorías).

Como por ejemplo el sexo o el paí:

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Para dividir un DataFrame en grupos se utilizan los siguientes métodos:

df.groupby(columnas).groups : Devuelve un diccionario con cuyas claves


son las tuplas que resultan de todas las combinaciones de los valores de
las columnas con nombres en la lista columnas, y valores las listas de los
nombres de las filas que contienen esos valores en las correspondientes
columnas del DataFrame df.

Ejemplo:

Este ejemplo agrupa una lista de personas por sexo. Luego muestra cada
uno de los grupos y los nombres de las personas dentro de cada grupo.
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

df.groupby(columnas).get_group(valores) : Devuelve un DataFrame con


las filas del DataFrame df que cumplen que las columnas de la lista
columnas presentan los valores de la tupla valores. La lista columnas y la
tupla valores deben tener el mismo tamaño.

Ejemplo:

Aplicar una función de agregación por grupos

Una vez dividido el DataFame en grupos, es posible aplicar funciones de


agregación a cada grupo mediante el siguiente método:

df.groupby(columnas).agg(funciones): Devuelve un DataFrame con el


resultado de aplicar las funciones de agregación de la lista funciones a
cada uno de los DataFrames que resultan de dividir el DataFrame según
las columnas de la lista columnas.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Una función de agregación toma como argumento una lista y devuelve un


único valor. Algunas de las funciones de agregación más comunes son:

● np.min: Devuelve el mínimo de una lista de valores

● np.max: Devuelve el máximo de una lista de valores.

● np.count_nonzero: Devuelve el número de valores no nulos de una


lista de valores.

● np.sum: Devuelve la suma de una lista de valores.

● np.mean: Devuelve la media de una lista de valores.

● np.std: Devuelve la desviación típica de una lista de valores.

Ejemplo:

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Reestructurar un DataFrame

A menudo la disposición de los datos en un DataFrame no es la adecuada


para su tratamiento y es necesario reestructurar el DataFrame. Los datos
que contiene un DataFrame pueden organizarse en dos formatos: ancho y
largo.

Convertir un DataFrame a formato largo

Para convertir un DataFrame de formato ancho a formato largo (columnas


a filas) se utiliza el siguiente método:

df.melt(id_vars=id-columnas, value_vars=columnas, var_name=nombre-


columnas, var_value=nombre-valores)

Devuelve el DataFrame que resulta de convertir el DataFrame df de


formato ancho a formato largo. Todas las columnas de lista columnas, se
reestructuran en dos nuevas columnas con nombres nombre-columnas y
nombre-valores que contienen los nombres de las columnas originales y
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

sus valores, respectivamente. Las columnas en la lista id-columnas se


mantienen sin reestructurar. Si no se pasa la lista columnas entonces se
reestructuran todas las columnas excepto las columnas de la lista id-
columnas.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Ejemplo:

Supongamos que tienes el siguiente DataFrame en formato ancho:

Puedes utilizar melt de la siguiente manera:

El DataFrame resultante en formato largo se vería así:

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Convertir un DataFrame a formato ancho

Para convertir un DataFrame de formato largo a formato ancho (filas a


columnas) se utiliza el siguiente método:

df.pivot(index=filas, columns=columna, values=valores)

Devuelve el DataFrame que resulta de convertir el DataFrame df de


formato largo a formato ancho. Se crean tantas columnas nuevas como
valores distintos haya en la columna columna. Los nombres de estas
nuevas columnas son los valores de la columna columna mientras que sus
valores se toman de la columna valores. Los nombres del índice del nuevo
DataFrame se toman de los valores de la columna filas.

Operaciones y principales métodos (head,


unique, nunique, value_counts).
En Pandas, puedes realizar una variedad de operaciones matemáticas en
columnas enteras de un DataFrame. Estas operaciones se realizan
elemento por elemento en las columnas y son útiles para realizar cálculos
y transformaciones en los datos.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Suma (+): Puedes sumar dos o más columnas para obtener una nueva
columna que contenga la suma de los valores en las columnas
seleccionadas.

Resta (-): La resta se utiliza para calcular la diferencia entre dos columnas
o valores. Puedes crear una nueva columna con los resultados de la resta.

Multiplicación (*): La multiplicación se utiliza para realizar operaciones de


multiplicación entre columnas o valores.

División (/): La división se utiliza para calcular el cociente entre dos


columnas o valores. Puedes crear una nueva columna con los resultados
de la división.

Operaciones de Potencia (**): Puedes elevar una columna a una potencia


específica utilizando el operador de doble asterisco (**).

Operaciones Trigonométricas y Matemáticas Avanzadas: Pandas también


admite funciones matemáticas y trigonométricas, como sin(), cos(), tan(),

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

exp(), log(), entre otras. Puedes aplicar estas funciones a columnas enteras
para realizar cálculos más avanzados.

Métodos:

head(n): Este método se utiliza para obtener las primeras n filas del
DataFrame. Es útil para obtener una vista previa de los datos sin mostrar
todo el DataFrame.

unique(): Se utiliza para obtener los valores únicos en una columna


específica del DataFrame. Devuelve un arreglo NumPy con los valores
únicos.

nunique(): Calcula la cantidad de valores únicos en una columna


específica. Puede ser útil para contar la cantidad de categorías diferentes
en una columna categórica.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

value_counts(): Este método cuenta la cantidad de ocurrencias de cada


valor único en una columna específica y los devuelve en un nuevo
DataFrame con dos columnas: una para los valores únicos y otra para sus
frecuencias.

Ordenamiento de un DataFrame
En Pandas, puedes ordenar un DataFrame en función de los valores de una
o más columnas. El método principal que se utiliza para ordenar un
DataFrame es sort_values().

Ordenar un DataFrame por una sola columna

Ordenar un DataFrame por múltiples columnas:

Puedes ordenar un DataFrame por múltiples columnas. El orden de las


columnas en el argumento by determinará el orden de prioridad.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Restablecer el índice después de ordenar

Después de ordenar un DataFrame, es posible que desees restablecer el


índice para que los índices estén en orden secuencial.

El argumento drop=True evita que se agregue una columna adicional con


los índices anteriores al restablecer el índice.

Ejercicio guiado
Comienza cualquier script de python con la importación de la librería
Pandas:

import pandas as pd

Los DataFrames son estructuras de datos bidimensionales con etiquetas en


columnas y filas. Puedes pensar en ellos como tablas de datos. Crea un
DataFrame simple manualmente:

# Definir los datos y las columnas

datos = {

'Nombre': ['Ana', 'Luis', 'Carlos', 'Teresa'],

'Edad': [28, 34, 29, 42],

'Ciudad': ['Madrid', 'Barcelona', 'Madrid', 'Valencia']

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

# Crear el DataFrame

df = pd.DataFrame(datos)

# Mostrar el DataFrame

print(df)

Aprende a seleccionar columnas y filas específicas utilizando la indexación


y el slicing:

# Seleccionar una columna

print(df['Nombre'])

# Seleccionar múltiples columnas

print(df[['Nombre', 'Edad']])

# Seleccionar filas por índice

print(df.iloc[1])

# Seleccionar filas y columnas específicas

print(df.iloc[1, 2]) # Fila 1, columna 2

Utiliza condiciones para filtrar datos en el DataFrame:

# Filtrar personas que viven en Madrid

df_madrid = df[df['Ciudad'] == 'Madrid']

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

print(df_madrid)

# Filtrar personas mayores de 30 años

df_mayores_30 = df[df['Edad'] > 30]

print(df_mayores_30)

Aprende a realizar operaciones básicas sobre las columnas:

# Añadir una nueva columna

df['Profesión'] = ['Ingeniera', 'Doctor', 'Arquitecto',


'Abogada']

print(df)

# Modificar una columna existente (por ejemplo, aumentar la


edad en 1)

df['Edad'] += 1

print(df)

# Describir estadísticas básicas

print(df.describe())

# Contar valores únicos en una columna

print(df['Ciudad'].value_counts())

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Referencias
● Aprende con alf: La librería Pandas
https://aprendeconalf.es/docencia/python/manual/pandas/

● Pandas: Documentation
https://pandas.pydata.org/pandas-docs/stable/

● Youtube – John Ortiz: Pandas: Ejercicio 66: Encontrar los Datos en un


DataFrame que no son Nulos (NaN)
https://www.youtube.com/watch?v=k7akrCQ0VyM&ab_channel=Joh
nOrtizOrdo%C3%B1ez

● Profile.es: Introducción a Pandas, la librería de Python para trabajar


con datos
● https://profile.es/blog/pandas-python/

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 2
La librería Pandas

Módulo
Obtención y Preparación de Datos

También podría gustarte