В некоторых ситуациях случайные наборы данных необходимы, например, для оценки эффективности алгоритмов.
При работе с Pandas нам часто нужны данные в виде DataFrame.
Это нельзя сделать напрямую, но, используя генераторы случайных чисел NumPy, вы можете создать из них DataFrames.
Давайте посмотрим, как создать случайный DataFrame в Pandas.
Содержание
Создание DataFrame с реальными случайными значениями
Самый простой способ создания случайного DataFrame в Pandas – вызвать метод np.random.rand() для создания массива, а затем преобразовать его в объект Pandas.
Этого можно достичь с помощью следующего кода.
import pandas as pd
import numpy as np
cols = 4
rows = 3
np.random.seed(0)
pd.DataFrame(np.random.rand(rows, cols))
Code language: Python (python)
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
Code language: CSS (css)
В данном случае были определены две переменные для хранения количества строк и столбцов.
Кроме того, зерно генератора случайных чисел NumPy было составлено так, чтобы всегда получать один и тот же результат.
Наконец, создается случайная матрица с четырьмя столбцами и тремя строками, которая преобразуется в DataFrame.
Вы также можете дать имена столбцам, для чего при создании DataFrame вам нужно будет передать только список столбцов.
Важно, чтобы этот список содержал столько же значений, сколько столбцов в матрице.
pd.DataFrame(np.random.rand(rows, cols), columns=['A', 'B', 'C', 'D'])
Code language: JavaScript (javascript)
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
Code language: CSS (css)
Создание случайного DataFrame из целых чисел
Если вы хотите работать с целыми числами, вам нужно только изменить функцию, используемую для генерации случайных чисел.
В данном случае подходит np.random.randint(). Функция, первым параметром которой является минимальное значение, вторым – максимальное, а третьим – размер матрицы.
Итак, для создания DataFrame со значениями от 0 до 1000 можно использовать следующий код.
pd.DataFrame(np.random.randint(0, 1000, (rows, cols)), columns=['A', 'B', 'C', 'D'])
Code language: JavaScript (javascript)
A B C D 0 91 896 398 611 1 565 908 633 938 2 84 203 324 774
Заключение
В этом посте мы рассмотрели различные способы создания случайного DataFrame с помощью Pandas или NumPy.