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.
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
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
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.
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.