jjzjj

python Pandas : DataFrame filter negative values

coder 2023-08-15 原文

我想知道如何删除列中包含负值的所有索引。我正在使用 Pandas DataFrames

Documentation Pandas DataFrame

格式:

Myid - valuecol1 - valuecol2 - valuecol3 -... valuecol30

所以我的DataFrame叫做data

我知道如何为 1 列执行此操作:

data2 = data.index[data['valuecol1'] > 0]
data3 = data.ix[data3]

所以我只得到 valuecol1 > 0 的 id,我怎样才能做一些 and 声明?

valuecol1 && valuecol2 && valuecol3 && ... && valuecol30 > 0

最佳答案

您可以使用all 来检查整行或整列是否为真:

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

如果您只想查看列的子集,例如[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

关于 python Pandas : DataFrame filter negative values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24214941/

有关python Pandas : DataFrame filter negative values的更多相关文章

随机推荐