从一组中随机选择行,并用熊猫中的其他字符串替换特定的列

时间:2018-12-02 18:12:00

标签: python-3.x pandas

我有一只看起来像这样的熊猫。

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()方法,但是我可以做到这一点。在如何加入所需的两次采样方面遇到了困难。

0 个答案:

没有答案