按条件删除 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
我有一个 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