按行值过滤pandas数据帧

时间:2018-06-14 14:54:52

标签: python pandas

我知道如何按列值过滤数据框:

import pandas as pd
import numpy as np
from numpy.random import randn
np.random.seed(101)
df = pd.DataFrame(randn(5,4),index='A B C D E'.split(),columns='W X Y Z'.split())
print(df)
# show only rows where 'W' is positive
# here, the row for 'C' will be deleted, since df['W']['C']<0
df[df['W']>0]

但是如何按行值过滤,例如'B'> 0?

由于df ['X'] ['B']&lt; = 0和df ['Y'] ['B']&lt; = 0,我想删除X和Y列。我试过以下代码,但它报告错误:

df.loc[df.loc['B']>0]

1 个答案:

答案 0 :(得分:2)

您应该在列上使用过滤器

df.loc[:,df.loc['B',:]>0]
Out[67]: 
          W         Z
A  2.706850  0.503826
B  0.651118  0.605965
C -2.018168 -0.589001
D  0.188695  0.955057
E  0.190794  0.683509