我有一只看起来像这样的熊猫。
select col1,col2,max(col3),min(col3)
from table
group by col1,col2
having max(col3) <> min(col3)
字符串都是任意字符串,数字也是。我正在尝试生成一个新数据帧,该数据帧具有一部分用户(随机采样),并且一部分Col2和Col3条目更改为固定字符串(例如“ ABCD”)。
我想指定两个分数f1和f2。 f1是我要采样的用户比例,f2是我要修改的用户条目中的比例。
我希望得到的输出是这样的,f1 = 0.4,f2 = 0.5。在4个用户上为2(1.6向上舍入为2)。在每个用户内,需要修改其Col2和Col3中的条目的0.2行分数。假设选择了user1和user4,则使用给定的字符串修改user1的2行和user4的3行。用户组中行的选择也必须是随机的。
输出看起来像这样
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
我尝试将其分解为较小的功能,但是根本无法将输出包裹住。我知道我必须使用groupby和pandas的sample()方法,但是我可以做到这一点。在如何加入所需的两次采样方面遇到了困难。