我有一个数据框,如下所示:
id_1 id_2 value 1 0 1 1 1 2 1 2 3 2 0 4 2 1 1 3 0 5 3 1 1 4 0 5 4 1 1 4 2 6 4 3 7 11 0 8 11 1 14 13 0 10 13 1 9
我想从这个表中随机抽取一个大小为n的样本,不需要替换,基于id\u 1。对于id_1列,此行必须是唯一的,并且只能出现一次。你知道吗
最终结果如下:
id_1 id_2 value 1 1 2 2 0 4 4 3 7 13 0 10
我试着做了一个分组,并使用索引从中取出一行随机抽样但它不是一路走的。你知道吗
有人能给我一个如何使这个工作的指针吗?下面是DF的代码!你知道吗
一如既往,感谢您的时间和投入!你知道吗
/瑞典
df = pd.DataFrame({'id_1' : [1,1,1,2,2,3,3,4,4,4,4,11,11,13,13],
'id_2' : [0,1,2,0,1,0,1,0,1,2,3,0,1,0,1],
'value_col' : [1,2,3,4,1,5,1,5,1,6,7,8,14,10,9]})
您可以使用矢量化函数(而不是循环)来实现这一点
uniqued
是由id_1
对唯一元素的随机洗牌+选择创建的。然后,在其上生成随机样本(无替换)。你知道吗每个id随机抽取一个样本:
附言:
使用pythons列表理解翻译上述解决方案,返回索引列表:
相关问题 更多 >
编程相关推荐