Случайный выбор строк из группы и замена определенных столбцов другой строкой в ​​панде - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть панда, которая выглядит следующим образом.

user Col1      Col2     Col3     Col4
user1 String11 String12 String13 1 
user1 String11 String12 String13 2 
user1 String11 String12 String13 3 
user2 String11 String12 String13 4 
user2 String11 String12 String13 5 
user2 String11 String12 String13 6 
user2 String11 String12 String13 7 
user3 String11 String12 String13 7 
user3 String11 String12 String13 8 
user4 String11 String12 String13 3 
user4 String11 String12 String13 1 
user4 String11 String12 String13 1 
user4 String11 String12 String13 1 
user4 String11 String12 String13 5 

Строки - все произвольные строки, так же как и числа.Я пытаюсь сгенерировать новый фрейм данных, в котором доля (случайная выборка) пользователей и доля записей Col2 и Col3 изменены на фиксированную строку (например, «ABCD»).

Я хотел бы указатьдве дроби f1 и f2.f1 - это доля пользователей, которую я хотел бы попробовать, а f2 - это доля записей в записях пользователя, которого я хотел бы изменить.

Вывод, который я надеюсь получить, примерно такой, f1= 0,4, f2 = 0,5.На 4 пользователей это 2 (1.6 округляется до 2).Внутри каждого пользователя 0,2 доли строк, чьи записи в Col2 и Col3 необходимо изменить.Предполагая, что user1 и user4 выбраны, 2 строки из user1 и 3 строки из user4 изменяются с данной строкой.Выбор строк в группе пользователей также должен быть случайным.

Вывод выглядит следующим образом

user Col1      Col2     Col3     Col4
user1 String11 ABCD     ABCD     1 
user1 String11 String12 String13 2 
user1 String11 ABCD     ABCD     3 
user4 String11 ABCD     ABCD     3 
user4 String11 String12 String13 1 
user4 String11 String12 String13 1 
user4 String11 ABCD     ABCD     1  
user4 String11 ABCD     ABCD     5 

Я пытался разбить его на более мелкие части функциональности, но просто не могу обернутьмоя голова вокруг выхода.Я знаю, что должен использовать groupby и метод sample () от pandas, но это далеко, насколько я могу получить.Должно быть трудно понять, как соединить две выборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...