Python数据框:以初始条件随机删除行

时间:2019-05-17 13:00:56

标签: python dataframe

我有一个这样的数据框:

 Col1 Col2 
  a1   1
  a2   1
  b1   2
  b2   2
  b3   2
  b4   2 

如果Col2 = 2,我想随机删除2行。示例输出:

 Col1 Col2 
  a1   1
  a2   1
  b1   2
  b4   2 

做到这一点的最佳方法是什么?谢谢:)

2 个答案:

答案 0 :(得分:1)

这可能不是最好的解决方案,但它可行

首先获得关于条件Col2 == 2的索引

index = df.index[df.Col2 == 2].tolist()

然后“随机”选择两行删除

import random
idx = random.sample(index, 2)
df.drop(index=idx)

答案 1 :(得分:0)

一种解决方案可能是:

df.drop(df.query('Col2 == 2').sample(frac=.5).index, replace=True)

其中,frace表示删除量的百分比,在这种情况下为删除量的一半,而replace表示您覆盖原始数据框)