我有一个这样的数据框:
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
做到这一点的最佳方法是什么?谢谢:)
答案 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表示您覆盖原始数据框)