2017-05-09 39 views
1

我有一个DF和条件DF [DF [ 'EmployeeName'] == 'JOSEPH德里斯科尔']给出以下输出enter image description hereUnalignable布尔系列键的类型(DF [DF [DF)

而当我输入这个df,可以[DF [ 'EmployeeName'] == 'JOSEPH德里斯科尔'] [ 'BasePay']> 140000
它给出这样

24真

名称的输出:BasePay,D型:布尔

现在我不能ø像这样

DF [DF [DF [ 'EmployeeName'] == 'JOSEPH德里斯科尔'] [ 'BasePay']> 140000]

并期望输出与上述图像相同??

回答

0

你需要boolean indexingquery与布尔由|or)创建&and)或(not)面具,~

df1 = df[(df['EmployeeName'] == 'JOSEPH DRISCOLL') & (df['BasePay'] > 140000)] 

或者:

df1 = df.query("EmployeeName == 'JOSEPH DRISCOLL' & BasePay > 140000") 

样品:

df = pd.DataFrame({'EmployeeName':['JOSEPH DRISCOLL','q'],'BasePay':[1000000,10]}) 
print (df) 
    BasePay  EmployeeName 
0 1000000 JOSEPH DRISCOLL 
1  10    q 

print ((df['EmployeeName'] == 'JOSEPH DRISCOLL') & (df['BasePay'] > 140000)) 
0  True 
1 False 
dtype: bool 

df1 = df[(df['EmployeeName'] == 'JOSEPH DRISCOLL') & (df['BasePay'] > 140000)] 
print (df1) 
    BasePay  EmployeeName 
0 1000000 JOSEPH DRISCOLL 

df1 = df.query("EmployeeName == 'JOSEPH DRISCOLL' & BasePay > 140000") 
print (df1) 
    BasePay  EmployeeName 
0 1000000 JOSEPH DRISCOLL 
+0

是的。我可以用&做。我不是想在这里解决一个特定的查询,而是理解我的理解有什么问题,我相信df [df [df [should – user3687023