按条件删除 90% 的随机行 pandas

Delete 90% of random rows by condition pandas

我有一个 pandas 数据框,想要删除满足条件的 90% 的数据。

条件很简单。如果列 "Parameter1" 的值大于阈值,则将其删除。

我的问题是如何删除其中的 90%,而不是连续删除 90% 的值,而是随机删除

使用boolean indexing with sample:

df = pd.DataFrame({
    'A': [5] * 20 + [1] * 2,
    'B': list(range(22))
})

df = df.drop(df[df['A'] > 4].sample(frac=.9).index)
print (df)
    A   B
11  5  11
15  5  15
20  1  20
21  1  21