Python

Pandas: Cómo convertir listas en DataFrames

Posiblemente una de las operaciones más habituales con Pandas sea convertir listas en DataFrames. Lo que se puede hacer con el constructor DataFrame de la librería.

Creación de DataFrames desde una lista de listas o de tuplas

Posiblemente la forma más sencilla para crear un DataFrame a partir de una lista es cuando tenemos una lista de listas, o una lista de tuplas. Por ejemplo, una lista como la siguiente en la que cada elemento es un registro de datos.

users = [[1, 'Josy', 'Clarae', 'Female'],
        [2, 'Vaughn', 'Halegarth', 'Male'],
        [3, 'Neale', 'Georgievski', 'Male'],
        [4, 'Teirtza', 'Teirtza', 'Female']]

En este caso se puede utilizar el constructor DataFrame para crear sin más problemas la un objeto DataFrame.

import pandas as pd

df = pd.DataFrame(users)
   0        1            2       3
0  1     Josy       Clarae  Female
1  2   Vaughn    Halegarth    Male
2  3    Neale  Georgievski    Male
3  4  Teirtza      Teirtza  Female

El procedimiento es exactamente el mismo mismo si en lugar de tener cada uno de los elementos tenemos una tupla en lugar de una lista.

Creación de un DataFrame con columnas e índices

Los nombres de columnas y los índices de la sección anterior son valores numéricos. El constructor de DataFrames de Pandas dispone de dos propiedades opcionales con las es posible asignar estos valores. Las propiedades columns y index que asignan respectivamente los índices y las columnas. Así, siguiendo con el ejemplo anterior se puede crear un DataFrame con nombres para los índices y las columnas.

df = pd.DataFrame(users,
                  columns=['id','first_name', 'last_name', 'gender'],
                  index=['a','b','c','d'])
   id first_name    last_name  gender
a   1       Josy       Clarae  Female
b   2     Vaughn    Halegarth    Male
c   3      Neale  Georgievski    Male
d   4    Teirtza      Teirtza  Female

Como se muestra en el ejemplo los índices de las filas no tiene que ser necesariamente un valor numérico.

Omitir valores en la creación de DataFrame

¿Qué pasa si queremos omitir un valor de cada uno de los registros? Se podría crear el DataFrame y posteriormente eliminar la columna no deseada. Pero es un proceso tedioso. También se puede utilizar el método from_records de DataFrame para realizar esta operación en un único paso. Un método con el que los objetos se construyen exactamente igual, pero en el que existe la propiedad exclude con la que se puede indicar el identificador de las columnas o columnas que se desea omitir. Por ejemplo, si se desea omitir el id del DataFrame creado anteriormente.

df = pd.DataFrame.from_records(users,
                               columns=['id','first_name', 'last_name', 'gender'],
                               index=['a','b','c','d'],
                               exclude=['id'])
  first_name    last_name  gender
a       Josy       Clarae  Female
b     Vaughn    Halegarth    Male
c      Neale  Georgievski    Male
d    Teirtza      Teirtza  Female

Creación del DataFrame desde múltiples listas

También es bastante habitual que los valores que tenemos para crear el DataFrame se encuentren en listas diferentes. Es decir, una lista para cada una de las columnas. En este caso es necesario convertir estas en una lista de tuplas. Algo que se puede conseguir fácilmente mediante el uso de la función zip. Así, se puede crear un DataFrame solamente con:

first_name = ['Josy', 'Vaughn', 'Neale', 'Teirtza']
last_name = ['Clarae', 'Halegarth', 'Georgievski', 'Teirtza']
gender = ['Female', 'Male', 'Male', 'Female']

user_list = list(zip(first_name, last_name, gender))

df = pd.DataFrame(user_list)
         0            1       2
0     Josy       Clarae  Female
1   Vaughn    Halegarth    Male
2    Neale  Georgievski    Male
3  Teirtza      Teirtza  Female

Conclusiones

En esta entrada hemos visto diferentes métodos para convertir listas en DataFrames con Pandas. Una operación básica pero que es importante conocer bien para tener trabajar de forma eficiente con la librería Pandas.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Pandas

Recent Posts

Curiosidad: La Paradoja de Simpson, o por qué no siempre debes fiarte de los promedios

En ciencia de datos y estadística, los promedios y porcentajes son herramientas fundamentales para resumir…

1 día ago

Copias de seguridad automáticas en SQL Server con rotación de archivos

Las bases de datos son el corazón de casi cualquier sistema de información moderno. Ya…

3 días ago

Curiosidad: La Ley de Twyman y la trampa de los datos “interesantes”

En ciencia de datos, pocas cosas llaman más la atención de los científicos de datos…

1 semana ago

Cómo calcular el tamaño de la muestra para encuestas

Calcular adecuadamente el tamaño de la muestra es una parte esencial en el diseño de…

1 semana ago

Curiosidad: El origen del análisis exploratorio de datos y el papel de John Tukey

Hoy en día, cuando pensamos en ciencia de datos, lo primero que nos viene a…

2 semanas ago

Cómo extender el tamaño de un disco en Rocky Linux 9 usando growpart y LVM

Ampliar el espacio de almacenamiento en un sistema Linux es una tarea habitual y crítica…

2 semanas ago

This website uses cookies.