2016-07-29 76 views
3

我有一個叫做數據的熊貓df。pandas df列上的嵌套「ifs」

我想要做的事,如:

for i in range(data["col1"].count()): 
    if data["col1"][i] > 25: 
    count1 += 1 
    if data["col2"][i] > 35: 
     count2 += 1 

,並可能有更多的列,這樣我可以跟蹤當幾個條件都滿足在一起。這有效,但速度慢,什麼是更好的方法?

+0

'COUNT1 =總和(數據[ 'COL1']> 25)' –

回答

3

這是一種更好的方式去:

cond1 = data.col1 > 25 
cond2 = data.col2 > 35 

count1 = cond1.sum() 
count2 = (cond1 & cond2).sum() 
1
count1 = df[df["col1"] > 25].count().values 
count2 = df[(df["col1"]> 25) & (df["col2"]>35)].count().values 

print count1 
print count2