基于列值从数据框中随机选择行

3

我是一个pandas数据框,如下所示:

col1, col2, label
a    b      0
b    b ,    0
.
.
..........  0
..........  1

并且对标签列进行value_counts

df['label'].value_counts():

0: 200000
1: 10000

我希望能够随机从值为“0”的标签中选择50000行,使我的值计数如下:
0: 50000
1: 10000
1个回答

11
过滤每个值并从每个值中sample N个值。然后,获取它们的索引,通过union连接并只使用loc
s0 = df.label[df.label.eq(0)].sample(50000).index
s1 = df.label[df.label.eq(1)].sample(10000).index 

df = df.loc[s0.union(s1)]

当然,如果你只是想获取所有的内容,就不需要在`s1`中指定`10000` :) 这里只是为了举例说明。

这个方法可行!我试图从第二个数据集中删除采样,因为我基本上只是想保留那些数据。谢谢!另外,你需要将数据框重新分配给自己以保留新的数据框,或者如果你想保留原始数据框,则将其存储到一个新变量中。 - Adarsh Ravi
1
很高兴能帮助到你 ;) - rafaelc
在抽样时,行是否会是不同的? - Luca Guarro
回答我的问题,是的,当'replace'为False时,它是默认值。 - Luca Guarro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接