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 un entrada previa explicamos qué son el WOE y el IV y por qué…
Seguimos evolucionando el laboratorio de Analytics Lane y hoy lanzamos la versión 1.1, disponible en:…
“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…
Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…
Imagina la situación. Tu equipo lleva tres años con un modelo en producción. No es…
Cuando un banco evalúa una solicitud de crédito necesita responder a una pregunta aparentemente simple:…
This website uses cookies.