![](/img/trans.png)
[英]How to delete specific rows in pandas dataframe if a condition is met
[英]How to delete specific number of random rows in Pandas dataframe based on condition?
我想从数据框中删除特定的“n”行,其中要删除的行是随机选择的。 此外,它必须根据特定列值的条件选择行。
例如,我的数据框如下:
C1 C2 C3
1 0 a
2 1 b
3 0 c
4 0 d
5 0 e
6 1 f
7 1 g
8 1 h
9 0 i
现在,我想随机删除n=2
行,条件是C2==1
。
结果帧可以如下所示:
C1 C2 C3
1 0 a
3 0 c
4 0 d
5 0 e
6 1 f
8 1 h
9 0 i
或者
C1 C2 C3
1 0 a
2 1 b
3 0 c
4 0 d
5 0 e
7 1 g
9 0 i
或者也许还有其他可能。 这里的问题 dows 显示随机删除 'n' 个句子,但不包括提供条件。
使用DataFrame.sample
通过boolean indexing
过滤行以获取随机行,最后使用drop
:
N = 2
df1 = df.drop(df[df['C2'].eq(1)].sample(N).index)
print (df1)
C1 C2 C3
0 1 0 a
1 2 1 b
2 3 0 c
3 4 0 d
4 5 0 e
6 7 1 g
8 9 0 i
或者使用np.random.choice
随机索引值:
df = df.drop(np.random.choice(df.index[df['C2'].eq(1)], N))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.