Привет, я хотел бы создать комбинации идентификаторов.Я знаю, как создавать все возможные комбинации, но я застрял в одной заключительной части операции.Любая помощь будет принята с благодарностью.
У меня есть следующий набор данных:
импорт панд в виде pd из itertools import комбинации_with_replacement
d1 = {'Subject': ['Subject1','Subject1','Subject1','Subject2','Subject2','Subject2','Subject3','Subject3','Subject3','Subject4','Subject4','Subject4','Subject5','Subject5','Subject5'],
'Actual':['1','0','0','0','0','1','0','1','0','0','0','0','1','0','1'],
'Event':['1','2','3','1','2','3','1','2','3','1','2','3','1','2','3'],
'Category':['1','1','2','1','1','2','2','2','2','1','1','1','1','2','1'],
'Variable1':['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15'],
'Variable2':['12','11','10','9','8','7','6','5','4','3','2','1','-1','-2','-3'],
'Variable3': ['-6','-5','-4','-3','-4','-3','-2','-1','0','1','2','3','4','5','6']}
d1 = pd.DataFrame(d1)
Я хочу создать все возможные комбинациипредметов в каждом событии в каждом уровне.Это делается с помощью (из предыдущего вопроса Форма группы лиц Python (pandas) ):
L = [(i[0], i[1], y[0], y[1]) for i, x in d1.groupby(['Event','Category'])['Subject']
for y in list(combinations_with_replacement(x, 2))]
df = pd.DataFrame(L, columns=['Event','Category','Subject_IDcol1','Subject_IDcol2'])
Теперь я хочу взять все те пары, для которых Actual = 1 ислучайным образом выберите «n» Предметы, для которых Actual = 0. Здесь для простоты, давайте возьмем n = 1. Я хочу запустить функцию комбинаций_в_место в этом новом списке.
Вывод, который янапример, хотите получить (при условии случайного выбора):
Для события 1 категории 1: субъекты 1 и 5 имеют Actual = 1 и предположим, что субъект 2 выбран случайным образом.
По сравнению с этим в предыдущем случае результат был примерно таким (для события = 1 и категории = 1)
Любая помощь будет оценена.Спасибо.