什么是计算符合条件的文本的熊猫方法?

时间:2016-03-19 16:31:46

标签: python-3.x pandas boolean-operations

有哪些熊猫方法可以计算满足多个条件的行?

例如:

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 个答案:

答案 0 :(得分:2)

在这种情况下,您可以使用in1d来检查appartenance:

np.in1d(df["A"],["1","3"]).sum()

这非常快。

答案 1 :(得分:1)

您可以使用:

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

或使用|orprint ("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')

使用更快的方法str.contains

hg diff -r10:14