2016-03-19 41 views
2

有些熊貓方法能夠對滿足多個條件的行進行計數?什麼是熊貓方法來計算符合條件的文本?

例如:

df = pd.DataFrame({ 'A' : ["1","2","3","4"], 
        'B' : pd.Timestamp('20130102'), 
        'C' : pd.Series(1,index=list(range(4)),dtype='float32'), 
        'D' : np.array([3] * 4,dtype='int32'), 
        'E' : pd.Categorical(["test","train","test","train"]), 
        'F' : 'foo' }) 
df 

我展示了下面的方法來計算一個條件:

print ("Sum for 1 and 3:",(df['A']=="1").sum(),"records") 

都有些什麼方法來計算兩個「1」和「3」?

在上面的例子中,我希望總和的輸出1和3:2條

回答

2

在這種情況下,你可以使用in1d,其中檢查appartenance:

​​

這是非常快的。

1

您可以使用:

print ("Sum for 1 and 3:",((df['A']=="1") | (df['A']=="3")).sum(),"records") 
('Sum for 1 and 3:', 2, 'records') 

或者使用str.contains|or):

print ("Sum for 1 and 3:",(df['A'].str.contains("1|3")).sum(),"records") 
('Sum for 1 and 3:', 2, 'records') 

更快的方法使用:

print ("Sum for 1 and 3:",np.sum(df['A'].str.contains("1|3")),"records") 
('Sum for 1 and 3:', 2, 'records')