如果该列中有任何列包含某个值,则在Pandas Dataframe中删除一行

发布于 2021-01-29 16:21:51

如果我们要删除一行中任何列都缺少值的行,我们可以这样做:

df.dropna(axis = 0, how = 'any', inplace = True)

如果我们要删除一行,其中该行的任何列都具有某个值(假设某列的值是“ turtle”),我们该怎么做?

x行的某些列包含“ turtle”,因此我们将其删除。

关注者
0
被浏览
167
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    演示:

    样本DF:

    In [7]: import string
    
    In [8]: df = pd.DataFrame(np.random.randint(100, size=(10,10)), columns=list(string.ascii_letters[:10]))
    
    In [9]: df
    Out[9]:
        a   b   c   d   e   f   g   h   i   j
    0  95  79  14  64  97   3   0  49  84   2
    1  52  82  72  40  55  26  21  69   2  35
    2  30  63  27  63  14  23  70  62  83  80
    3  23  90  96  43  75  23  27  47  83  40
    4  82  87  63  37  36  58  88  18  50  29
    5  92  29  93   6  62  85  87  74  21  32
    6  23  64  19  22  50  86  51  93  46   1
    7  56   0   8  46   1  56  82  15  55  45
    8  67  35  83  65  63  58  48  85  75  90
    9  12   7  45  28  33  98  42  93  78  12
    

    让我们删除包含至少一个的所有行0

    In [10]: df.eq(0)
    Out[10]:
           a      b      c      d      e      f      g      h      i      j
    0  False  False  False  False  False  False   True  False  False  False
    1  False  False  False  False  False  False  False  False  False  False
    2  False  False  False  False  False  False  False  False  False  False
    3  False  False  False  False  False  False  False  False  False  False
    4  False  False  False  False  False  False  False  False  False  False
    5  False  False  False  False  False  False  False  False  False  False
    6  False  False  False  False  False  False  False  False  False  False
    7  False   True  False  False  False  False  False  False  False  False
    8  False  False  False  False  False  False  False  False  False  False
    9  False  False  False  False  False  False  False  False  False  False
    
    In [11]: res = df[~df.eq(0).any(1)]
    
    In [12]: res
    Out[12]:
        a   b   c   d   e   f   g   h   i   j
    1  52  82  72  40  55  26  21  69   2  35
    2  30  63  27  63  14  23  70  62  83  80
    3  23  90  96  43  75  23  27  47  83  40
    4  82  87  63  37  36  58  88  18  50  29
    5  92  29  93   6  62  85  87  74  21  32
    6  23  64  19  22  50  86  51  93  46   1
    8  67  35  83  65  63  58  48  85  75  90
    9  12   7  45  28  33  98  42  93  78  12
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看