A tu propio ritmo

Explora nuestra extensa colección de cursos diseñados para ayudarte a dominar varios temas y habilidades. Ya seas un principiante o un aprendiz avanzado, aquí hay algo para todos.

Bootcamp

Aprende en vivo

Únete a nosotros en nuestros talleres gratuitos, webinars y otros eventos para aprender más sobre nuestros programas y comenzar tu camino para convertirte en desarrollador.

Próximos eventos en vivo

Catálogo de contenidos

Para los geeks autodidactas, este es nuestro extenso catálogo de contenido con todos los materiales y tutoriales que hemos desarrollado hasta el día de hoy.

Tiene sentido comenzar a aprender leyendo y viendo videos sobre los fundamentos y cómo funcionan las cosas.

Buscar en lecciones


IngresarEmpezar
← Volver a Cómo hacerlo
Editar en Github

Tutorial de DataFrames con Pandas

Escrito por:

Un DataFrame es una estructura de datos proporcionada por la librería de Pandas que te permite representar una lista bidimensional de datos en una tabla de filas y columnas, este estructura te permite almacenar diferentes tipos de datos y realizar operaciones sobre ellos. En este artículo veremos algunos fundamentos básicos acerca de como crear un DataFrame y algunos de los métodos más relevantes para poder manipular sus datos. Si necesitas aprender sobre pandas por completo, aquí te dejamos un tutorial de pandas para machine learning.

El siguiente es un pequeño ejemplo sobre ¿cómo crear un DataFrame de usuarios?

1import pandas as pd 2 3usuarios = { 4 "Firstname": ['Thomas', 'Jane', 'Charlie', 'David'], 5 "Lastname": ['Smith', 'Johnson', 'Brown', 'Lee'], 6 "Email": ['thomas@example.com', 'Jane@example.com', 'charlie@example.com', 'david@example.com'], 7 "Age": [28, 32, 25, 30] 8} 9 10usuarios_df = pd.DataFrame(usuarios) 11print(usuarios_df)

output del código en la consola:

1 Firstname Lastname Email Age 20 Thomas Smith thomas@example.com 28 31 Jane Johnson Jane@example.com 32 42 Charlie Brown charlie@example.com 25 53 David Lee david@example.com 30

Para crear un DataFrame primero debes asegurarte de importar el módulo de pandas, luego simplemente debes crear un diccionario para representar la información donde las claves de objetos serán las columnas y los valores de las claves serán los valores para las filas del DataFrame. Por último para crear el DataFrame debes usar la clase DataFrame() que recibe como argumento el diccionario con la información y retorna un nuevo DataFrame con esa información. En el output de la consola puedes ver la estructura que tendrá el data frame con los índices, la filas y las columnas.

¿Qué es un DataFrame?

Un DataFrame es una forma de representar datos en una tabla con filas y columnas donde cada fila representa una observación o un registro y cada columna representa una variable o un atributo. Por ejemplo, si tenemos una tabla con los datos de las películas de un director, cada fila sería una película y cada columna sería una característica como el título, el género, el idioma, el año de estreno etc...

Podemos crear un DataFrame con ayuda de una de las librerías más populares de Python, la librería de Pandas, esta librería nos ofrece varias herramientas para crear, manipular, organizar y eliminar elementos de un DataFrame. Un DataFrame de pandas tiene muchas ventajas, algunas de ellas son:

  • Puede almacenar datos de diferentes tipos en cada columna, como números, cadenas, booleanos, fechas, etc.
  • Tiene métodos integrados para leer y escribir datos desde y hacia diferentes formatos, como CSV, Excel, JSON, SQL, etc.
  • Tiene métodos para realizar operaciones estadísticas, matemáticas, de agrupación, de combinación, de pivoteo entre otros.

¿Cómo crear un DataFrame de pandas?

A continuación vamos a seguir algunos pasos para crear un DataFrame con ayuda del método DataFrame() de la librería de Pandas.

1. Instalar Pandas

Para poder crear un DataFrame, primero necesitas instalar la librería de Pandas, puedes instalarla con el administrador de paquetes pip. Si aún no tienes pip instalador en tu ordenador puedes hacerlo desde la pagina oficial de pip download, una vez que tengas pip instalado en tu ordenador puede usar el siguiente comando para instalar Pandas.

1pip install pandas

Luego puedes confirmar que pip se instaló correctamente con el comando pip --version, deberías ver en la consola la última versión estable de pip.

1pip --version 2 3// output ejemplo 4pip 23.2.1 from C:\Python312\Lib\site-packages\pip (python 3.12)

2. Importar pandas

Una vez terminada la descarga, abre tu editor de código preferido, si aún no tienes uno instalado te recomiendo que utilices el editor de código visual studio code, después crea un archivo con la extensión .py para crear un archivo python por ejemplo ìndex.py y por último dentro del archivo ingresa la siguiente sintaxis para importar pandas:

1import pandas as pd

Con esta sintaxis, importamos el módulo de pandas y le colocamos el alias (opcional) de pd lo que nos permite utilizar los métodos del módulo de pandas más fácilmente.

3. Crear el DataFrame

Ahora que ya importamos pandas en nuestro archivo de trabajo podemos empezar a crear nuestro DataFrame, para este ejemplo crearemos un DataFrame de con la información de algunas películas.

1import pandas as pd 2 3peliculas = { 4 'Idioma': ['Inglés', 'Español', 'Francés', 'Alemán'], 5 'Director': ['John Smith', 'Maria Rodríguez', 'Étienne Dubois"', 'Emily Müller'], 6 'Año de Estreno': [2020, 2018, 2019, 2021], 7 'Título': ['Crossed Paths', 'Secretos de Medianoche', 'Lever de soleil à Paris', 'Der letzte Seufzer'] 8} 9 10df_peliculas = pd.DataFrame(peliculas) 11print(df_peliculas)

output del código:

1 Idioma Director Año de Estreno Título 20 Inglés John Smith 2020 Crossed Paths 31 Español Maria Rodríguez 2018 Secretos de Medianoche 42 Francés Étienne Dubois 2019 Lever de soleil à Paris 53 Alemán Emily Müller 2021 Der letzte Seufzer

Para crear el DataFrame, primero debemos crear un diccionario que tenga como claves los nombres para las columnas y como valores una lista que representa la información de cada película en esa columna, es muy importante que todas las listas tengan la misma cantidad de elementos ya que si alguna de las listas tiene más elementos que las demás el código nos arrojará un error. Después podemos utilizar el método DataFrame() de la librería de pandas para estructurar nuestro DataFrame, este método recibe como argumento el diccionario con la información de las películas y retorna una estructura de DataFrame que guardaremos en la variable df_peliculas. Por último simplemente imprimimos el resultado en la consola para ver la estructura de nuestro DataFrame.

Métodos más importantes para operaciones básicas

La librería de Pandas tiene varios métodos que te permite manipular la información de un DataFrame, a continuación veremos algunos de los más importante y utilizados al momento de trabajar con un DataFrame.

  • Método head() y el método tail(): Estos métodos te permiten visualizar las primeras y las últimas filas de un DataFrame respectivamente. Estos métodos pueden recibir como parámetro un número que le indica la cantidad filas que deseas visualizar, si no lo pasas ningún número como argumento te mostrará 5 filas.
  • Método info(): Este método retorna la información general sobre el DataFrame, como el nombre y tipo de las columnas, el número de valores no nulos, el uso de memoria entre otras propiedades del DataFrame.
  • Método describe(): Este método te muestra las estadísticas sobre las columnas numéricas del DataFrame, el número de valores, la medida, la desviación estándar entre algunos otros. Este método puede ser útil para tener una idea de la distribución y la variabilidad de los datos.
  • Método sort_values(): Ordena el DataFrame según el valor de una o más columnas, especificadas mediante el argumento by, además podemos indicarle si ordenar el DataFrame de forma ascendente o descendente y si queremos modificar el DataFrame original podemos usar el argumento de inplace y pasarle como valor True.
  • Método apply(): Este método nos permite aplicar una función a cada fila o a cada columna de un DataFrame, según el valor del argumento axis, que puede ser 0 para columnas o 1 para las filas. Este método puede recibir una función predefinida por el usuario o predefinida de Python o de Pandas. Lee este artículo si quieres conocer más sobre el método apply de pandas.

Métodos más importantes para la limpieza de los datos

La limpieza de datos es un proceso muy importante para el análisis de datos, la librería de pandas ofrece una amplia variedad de métodos que nos pueden ayudar con esta tarea. A continuación veremos algunos de los más importantes y comúnmente utilizados para realizar la limpieza de datos de un DataFrame.

1import pandas as pd 2 3columns = ["Species ID", "Family", "Category", "Park Name", "Name"] 4rows_data = [ 5 ["ACAD-1000", "Mammal", "Cervidae", "Acadia National Park", "Moose"], 6 ["ACAD-1001", None, "Cervidae", "Badlands National Park", "Northern White-Tailed Deer"], 7 ["ACAD-1002", "Mammal", "Canidae", "Big Bend National Park", "Coyote"], 8 ["ACAD-1003", "Mammal", "Canidae", "Big Bend National Park", "Eastern Timber Wolf"], 9 ["ACAD-1004", "Mammal", "Canidae", "Biscayne National Park", "Red Fox"], 10 ["ACAD-1004", "Mammal", "Canidae", "Biscayne National Park", "Red Fox"], 11 ["ACAD-1005", "Mammal", None, "Badlands National Park", "Bobcat"], 12 ["ACAD-1006", "Mammal", "Mephitidae", "Bryce Canyon National Park", "Striped Skunk"], 13 ["ACAD-1007", "Mammal", "Mustelidsae", "Bryce Canyon National Park", None], 14 ["ACAD-1006", "Mammal", "Mephitidae", "Bryce Canyon National Park", "Striped Skunk"] 15] 16 17df_species = pd.DataFrame(rows_data, columns=columns) 18print(df_species)
  • Método drop_duplicates(): Este método elimina todas las filas duplicadas dentro de un DataFrame, es decir todas las columnas que tengan los mismos valores en todas las columnas.
1df_species = df_species.drop_duplicates()
1 Species ID Family Category Park Name Name 20 ACAD-1000 Mammal Cervidae Acadia National Park Moose 31 ACAD-1001 None Cervidae Badlands National Park Northern White-Tailed Deer 42 ACAD-1002 Mammal Canidae Big Bend National Park Coyote 53 ACAD-1003 Mammal Canidae Big Bend National Park Eastern Timber Wolf 64 ACAD-1004 Mammal Canidae Biscayne National Park Red Fox 76 ACAD-1005 Mammal None Badlands National Park Bobcat 87 ACAD-1006 Mammal Mephitidae Bryce Canyon National Park Striped Skunk 98 ACAD-1007 Mammal Mustelidsae Bryce Canyon National Park None
  • Métodos isnull() y notnull(): Estos métodos devuelven un DataFrame booleano que indica si cada valor del DataFrame original es nulo o no, respectivamente. Un valor nulo es aquel que no existe o que no se conoce, y se representa con NaN (Not a Number) en pandas. Estos métodos son útiles para detectar y contar los valores nulos en el DataFrame.
1print(df_species.isnull())
1 Species ID Family Category Park Name Name 20 False False False False False 31 False True False False False 42 False False False False False 53 False False False False False 64 False False False False False 76 False False True False False 87 False False False False False 98 False False False False True
  • Método fillna(): Este método rellena los valores nulos del DataFrame con un valor específico, indicado como argumento. Este valor puede ser cualquier tipo de dato un número, una cadena, un boleano etc...
1df_species = df_species.fillna("HELLO")
1 Species ID Family Category Park Name Name 20 ACAD-1000 Mammal Cervidae Acadia National Park Moose 31 ACAD-1001 HELLO Cervidae Badlands National Park Northern White-Tailed Deer 42 ACAD-1002 Mammal Canidae Big Bend National Park Coyote 53 ACAD-1003 Mammal Canidae Big Bend National Park Eastern Timber Wolf 64 ACAD-1004 Mammal Canidae Biscayne National Park Red Fox 76 ACAD-1005 Mammal HELLO Badlands National Park Bobcat 87 ACAD-1006 Mammal Mephitidae Bryce Canyon National Park Striped Skunk 98 ACAD-1007 Mammal Mustelidsae Bryce Canyon National Park HELLO
  • Método dropna(): Este método elimina las filas de un DataFrame que contienen valores nulos. Este método puede ser muy útil ya que hacer análisis de datos con valores nulos puede ser problemático.
1df_species = df_species.dropna()
1 Species ID Family Category Park Name Name 20 ACAD-1000 Mammal Cervidae Acadia National Park Moose 32 ACAD-1002 Mammal Canidae Big Bend National Park Coyote 43 ACAD-1003 Mammal Canidae Big Bend National Park Eastern Timber Wolf 54 ACAD-1004 Mammal Canidae Biscayne National Park Red Fox 67 ACAD-1006 Mammal Mephitidae Bryce Canyon National Park Striped Skunk

Estos son algunos los métodos más utilizados que puedes usar para hacer el proceso de limpieza de datos, pero pandas ofrece muchos más para ayudarte con este proceso, además puedes combinar estos métodos con otras librerías como Numpy para manipular los datos del DataFrame de una manera mucho más eficiente.

Casos de uso

  • Ciencia de Datos: Quizás uno de los casos de uso más relevantes para los DataFrames es la ciencia de datos, los científicos de datos utilizan DataFrames para explorar, visualizar y analizar diferentes conjuntos de datos. Pandas ofrece herramientas poderosas para estas tareas.
  • Análisis de Ventas: Un DataFrame es ideal para analizar datos de ventas. Puedes cargar datos de ventas en un DataFrame, realizar cálculos de ingresos, márgenes de beneficio y mucho más.
  • Machine learning: Los DataFrames también son muy útiles para visualizar y manipular información en el proceso de entrenamiento de modelos de aprendizaje automático. Además como mencionamos anteriormente también puedes combinar Pandas con otras librerías lo cual te permite manipular la información de un dataset fácilmente.

Conclusión

El DataFrame es una de las estructuras más utilizadas de la librería de pandas, con el puedes organizar, filtrar, ordenar y modificar grandes conjuntos de datos fácilmente. En este artículo vimos como crear un DataFrame paso a paso y además vimos algunos ejemplos de los métodos más utilizados para trabajar con un DataFrame y también para hacer el proceso de limpieza de datos.

Esperamos que este tutorial haya sido de utilidad y que hayas adquirido sólidos conocimientos sobre el manejo de DataFrames con Pandas en Python. Este es solo el comienzo de tu viaje en el análisis de datos. Te invitamos a explorar otros recursos en nuestro blog para expandir tus habilidades y conocimientos en Python y análisis de datos. Si deseas llevar tu aprendizaje al siguiente nivel, te animamos a registrarte de forma totalmente gratuita en 4Geeks.com.