Случайная комбинация значений из столбцов, DataFrame, панд - PullRequest
0 голосов
/ 07 июня 2018

У меня есть следующий DataFrame в пандах:

A  B
1  23
43 446
197 5
99 12
....

Мне нужен еще один DataFrame с теми же столбцами A и B и случайными элементами (0 < A_i < A_max, 0 < B_i < B_max), где каждый уникальныйкомбинация элементов A и B в некоторой строке не существует в первом кадре данных.

1 Ответ

0 голосов
/ 07 июня 2018

Если вас не волнует распределение, вы можете просто использовать равномерное распределение из random.

Если исходный DataFrame имеет имя df и вы хотите random_df такой же длины:

from random import random
import pandas as pd

A_max = df['A'].max()
B_max = df['B'].max()

random_df = pd.DataFrame(columns=df.columns)

i = 0
while i < range(len(df)):
    A_random = int(random() * A_max)
    B_random = int(random() * B_max)

    # Checking that the combination does not exist in the original DataFrame
    if len(df[(df['A'] == A_random) & (df['B'] == B_random)] == 0:
        i += 1
        random_df.append({'A': A_random, 'B': B_random}, ignore_index=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...