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

时间:2019-08-08 04:16:09

标签: python python-3.x pandas

我有一个熊猫数据框,如下所示:

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

和标签列的value_counts

df['label'].value_counts():

0: 200000
1: 10000

我想从值为'0'的标签中随机选择50000行,以使我的value_counts变为:

0: 50000
1: 10000

1 个答案:

答案 0 :(得分:1)

过滤每个值和每个值中的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)]

当然,如果您只需要获取所有{:{1}},就无需在10000中指定s1 :)