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.
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.
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.
¿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
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
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.
En ciencia de datos y estadística, los promedios y porcentajes son herramientas fundamentales para resumir…
Las bases de datos son el corazón de casi cualquier sistema de información moderno. Ya…
En ciencia de datos, pocas cosas llaman más la atención de los científicos de datos…
Calcular adecuadamente el tamaño de la muestra es una parte esencial en el diseño de…
Hoy en día, cuando pensamos en ciencia de datos, lo primero que nos viene a…
Ampliar el espacio de almacenamiento en un sistema Linux es una tarea habitual y crítica…
This website uses cookies.