Pandas COUNTIF基于列值

时间:2017-04-04 20:24:18

标签: python pandas dataframe

我试图在pandas中基本上做一个COUNTIF来计算一行中有多少项与第一列中的数字相匹配。

数据帧:

a b c d
1 2 3 1
2 3 4 2
3 5 6 3

所以我想计算与a匹配的实例(b,c,d)。例如,在第1行中,它应为1,因为只有d匹配。

我已经搜索了相当多的内容,但到目前为止只发现了一个常见数字(例如计算所有值大于0)但不基于数据帧列的示例。我猜它是某种形式的逻辑,基于列掩盖,但df == df.a似乎没有工作

2 个答案:

答案 0 :(得分:6)

您可以使用MATCH p=(:Foo {id:1})-[:BAR*]->(:Foo {id:2}) RETURN REDUCE(s = 1.0, n IN NODES(p)[0..-1] | s / SIZE((n)-->())) AS connectedness, p ,您可以传递eq参数来指定比较的方向,然后您可以执行行总和来计算匹配值的数量:

axis

答案 1 :(得分:3)

df.apply(lambda x: (x == x[0]).sum()-1,axis=1)