2017-03-31 14 views

回答

1

您需要boolean indexing如果两个indexes是相同的:

df = df[boolean_ser] 

如果不是和lenght是一样的:

df = df[boolean_ser.values] 

样品:

np.random.seed(100) 
df = pd.DataFrame(np.random.randint(10, size=(3, 4)), columns=list('ABCD')) 
boolean_ser = pd.Series([True, False, True], index=df.index) 
print (df) 
    A B C D 
0 8 8 3 7 
1 7 0 4 2 
2 5 2 2 2 
boolean_ser = pd.Series([True, False, True], index=df.index) 
print (boolean_ser) 
0  True 
1 False 
2  True 
dtype: bool 

df1 = df[boolean_ser] 
print (df1) 
    A B C D 
0 8 8 3 7 
2 5 2 2 2 

boolean_ser = pd.Series([True, False, True], index=[8,9,10]) 
print (boolean_ser) 
8  True 
9  False 
10  True 
dtype: bool 

df1 = df[boolean_ser.values] 
print (df1) 
    A B C D 
0 8 8 3 7 
2 5 2 2 2 

列表完美地工作过(如果长度相同):

print (boolean_list) 
[True, False, True] 

df1 = df[boolean_list] 
print (df1) 
    A B C D 
0 8 8 3 7 
2 5 2 2 2 
相关问题