Python

Pandas: Cómo crear un DataFrame aleatorio

En algunos casos son necesarios los conjuntos de datos aleatorios, por ejemplo, para la evaluación del rendimiento de algoritmos. Al trabajar con Pandas muchas veces necesitamos en forma de DataFrame. Algo que directamente no se puede hacer, pero sí usando los generadores de números aleatorios de NumPy, para crear a partir de estos unos DataFrame. Veamos cómo se puede crear un DataFrame aleatorio en Pandas.

Creación de un DataFrame con valores aleatorios reales

Lo más fácil para la creación de un DataFrame aleatorio en Pandas es llamar al método np.random.rand() para crear una matriz y posteriormente convertirla a un objeto de Pandas. Algo que se puede conseguir con el siguiente código.

import pandas as pd
import numpy as np

cols = 4
rows = 3

np.random.seed(0)

pd.DataFrame(np.random.rand(rows, cols))
          0         1         2         3
0  0.548814  0.715189  0.602763  0.544883
1  0.423655  0.645894  0.437587  0.891773
2  0.963663  0.383442  0.791725  0.528895

En este caso se han definido dos variables para guardar el número de filas y columnas. Además de esto se ha incivilizado la semilla del generador de números aleatorios de NumPy para obtener siempre el mismo resultado. Para finalmente crear una matriz aleatoria con cuatro columnas y tres filas y transformada en un DataFrame.

También se pueden poner un nombre a las columnas, para lo que solamente se tiene que pasar una lista a la propia de columnas a la hora de crear el DataFrame. Siendo importante que esta lista contenga tantos valores cómo columnas como la matriz.

pd.DataFrame(np.random.rand(rows, cols), columns=['A', 'B', 'C', 'D'])
          A         B         C         D
0  0.568045  0.925597  0.071036  0.087129
1  0.020218  0.832620  0.778157  0.870012
2  0.978618  0.799159  0.461479  0.780529

Creación de un DataFrame aleatorio de enteros

En el caso de que se desee trabajar con enteros, solamente hay que cambiar la función usada para generar los números aleatorios. Siendo la adecuada en esta caso np.random.randint(). Una función que como primer parámetro tiene el valor mínimo, como segundo el máximo y como tercero el tamaño de la matriz. Así para crear una DataFrame con valores entre 0 y 1000 se puede usar el siguiente código.

pd.DataFrame(np.random.randint(0, 1000, (rows, cols)), columns=['A', 'B', 'C', 'D'])
     A    B    C    D
0   91  896  398  611
1  565  908  633  938
2   84  203  324  774

Conclusiones

En esta entrada se han visto diferentes formas de crear un DataFrame aleatorio con Pandas u NumPy. Unos trucos que se pueden usar para cuando es necesario disponer de un conjunto de datos rápidamente para evaluar algún código.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: NumPyPandas

Recent Posts

Analytics Lane lanza ScoreFlow, un SaaS para construir y desplegar scorecards de crédito

En Analytics Lane seguimos evolucionando nuestras herramientas y damos un paso más con el lanzamiento…

3 días ago

DBSCAN y la selección de ε: teoría, intuición y aplicación práctica

Cuando hablamos de clustering, lo primero que viene a la mente suele ser k-means. Pero…

4 días ago

El bestiario de los indicadores económicos absurdos: El zoo patrio

Cualquier país desarrollado tiene sus propios indicadores folclóricos. España, por motivos que tienen mucho que…

1 semana ago

Por qué el banco te ofrece un 3% TAE y no es lo que parece

Entras a la web de tu banco. En la página principal, un banner llamativo: “Depósito…

2 semanas ago

Analytics Lane lanza la versión 1.3 del laboratorio con nuevas herramientas de evaluación de modelos y utilidades prácticas

Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.3, disponible…

2 semanas ago

This website uses cookies.