Если вас не волнует распределение, вы можете просто использовать равномерное распределение из 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)