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

cug*_*uga 6 python random dataframe threshold pandas

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

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

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

jez*_*ael 13

boolean indexing与以下一起使用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
Run Code Online (Sandbox Code Playgroud)