我用熊猫。我有DataFrame。
我想根据相同的条件删除行。
Y
请告诉我是否有更漂亮/更快的解决方案?
答案 0 :(得分:2)
与all
相比,我认为您可以在合并列时使用''
bool_mask = (df['a'] == 'aaa') & \
(df[['b', 'c', 'd', 'e', 'f', 'm', 'n', 'w']] == '').all(1)
df = df[~bool_mask]
答案 1 :(得分:1)
我们可以按如下所示将其缩减,找到其他所有等于''的列,并将等于'aaa'的a列作为目标:
# make whole df equal to '' then sum all of them by row
# then we at least need 8 blank
# then apply the 2nd condition df.a should be equal to 'aaa'
m=(df=='').sum(1).eq(8)&df.a.eq('aaa')
或
m=df.drop('a',1).eq('').all(1)&df.a.eq('aaa')