У меня есть набор данных измерения 90000x18 (кадр данных pandas). Когда эти данные генерировались, считалось, что некоторые случайные переменные учитывают неопределенность, которая присутствует при выборе различных параметров в модели. Благодаря использованию этих случайных переменных для каждого набора основных характеристик результат был сгенерирован 100 раз, чтобы мы могли распределить эти случайные штрафы в выходных данных. Теперь я хочу извлечь эти 100 экземпляров с одинаковыми характеристиками (одинаковое значение в соответствующих столбцах) из набора данных 90000 экземпляров. Тем не менее, я хочу случайным образом выбрать эту комбинацию значений. Вот код, который я использовал:
import random
RandomList = pd.DataFrame()
while len(RandomList)==0:
RandomList = df_te.loc[
(df_te['constellation'] == random.choice(constellation)) & (df_te['volume'] == random.choice(volume)) &
(df_te['link_len_n'] == random.choice(link_len_n)) & (df_te['link_len_m'] == random.choice(link_len_m)) &
(df_te['link_len_s'] == random.choice(link_len_s)) & (df_te['guardband_l'] == random.choice(guardband_l)) &
(df_te['guardband_r'] == random.choice(guardband_r)) & (df_te['traffic_l'] == random.choice(traffic_l)) &
(df_te['traffic_r'] == random.choice(traffic_r)) & (df_te['constellation_l'] == random.choice(constellation_l)) &
(df_te['constellation_r'] == random.choice(constellation_r))]
, однако он просто делает бесконечный цикл, который, я думаю, связан с тем, что, когда он случайным образом выбирает значение первого столбца, он ограничивает значения, которые можно выбратьиз следующих столбцов, и через некоторое время он не может найти какое-либо значение для оставшихся столбцов, которое будет соответствовать случайно выбранным предыдущим значениям. Переменные, которые были переданы в функции random.choice (), являются только списками уникальных значений каждого столбца с тем же именем, что и столбцы моего фрейма данных. Причина, по которой я использовал цикл while, заключается в том, что он возвращает фрейм данных (RandomList) нулевой длины без него. Это работало очень хорошо, когда я применял только первые пять случайных выборов, но когда я добавил к ним, чтобы я мог получить полный случайный выбор всех функций, это, кажется, создает бесконечный цикл. У кого-нибудь есть идеи о том, как я смогу это сделать ???