python + dataframe +基于布尔值计算单行中的项目

时间:2017-01-23 18:24:01

标签: python pandas

我觉得有一种简单的方法可以做到这一点......我有一个数据框如下:

df1 = 
    Index  A     B     C
    0      5     7     11
    1      10    7     11

我想知道如何:

df1['Index'==1][<10].count()

即,对于index = 1,返回<10的值的数量。 (所以应该返回1)

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用DF.query()进行选择,如下所示:(假设您要查询可能重复的索引轴)

df1.query("Index == 1").lt(10).sum(1)      # assuming the index name as "Index"
Out[56]:
Index
1    1
dtype: int64

它的.loc等效语法:

df1.loc[df1.index==1].lt(10).sum(1)
Out[58]:
Index
1    1
dtype: int64

答案 1 :(得分:1)

你可以使用.loc,你当前的索引尝试是一个丑陋的语法错误。

In[32]: df.loc[1].lt(10).sum()
Out[32]: 1