Python Pandas: DataFrame filter negative values

前端 未结 4 734
独厮守ぢ
独厮守ぢ 2021-01-31 05:30

I was wondering how I can remove all indexes that containing negative values inside their column. I am using Pandas DataFrames.

Documentation Pandas DataFr

4条回答
  •  情书的邮戳
    2021-01-31 06:16

    You can use all to check an entire row or column is True:

    In [11]: df = pd.DataFrame(np.random.randn(10, 3))
    
    In [12]: df
    Out[12]:
              0         1         2
    0 -1.003735  0.792479  0.787538
    1 -2.056750 -1.508980  0.676378
    2  1.355528  0.307063  0.369505
    3  1.201093  0.994041 -1.169323
    4 -0.305359  0.044360 -0.085346
    5 -0.684149 -0.482129 -0.598155
    6  1.795011  1.231198 -0.465683
    7 -0.632216 -0.075575  0.812735
    8 -0.479523 -1.900072 -0.966430
    9 -1.441645 -1.189408  1.338681
    
    In [13]: (df > 0).all(1)
    Out[13]:
    0    False
    1    False
    2     True
    3    False
    4    False
    5    False
    6    False
    7    False
    8    False
    9    False
    dtype: bool
    
    In [14]: df[(df > 0).all(1)]
    Out[14]:
              0         1         2
    2  1.355528  0.307063  0.369505
    

    If you only want to look at a subset of the columns, e.g.[0, 1]:

    In [15]: df[(df[[0, 1]] > 0).all(1)]
    Out[15]:
              0         1         2
    2  1.355528  0.307063  0.369505
    3  1.201093  0.994041 -1.169323
    6  1.795011  1.231198 -0.465683
    

提交回复
热议问题