基于列值的熊猫COUNTIF

康卡蒂

我实际上是想在熊猫中做一个COUNTIF,以计算一行中有多少项与第一列中的数字相匹配。

数据框:

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

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

我已经为此进行了很多搜索,但到目前为止,仅发现了示例,该示例的示例使用通用数(例如,对所有大于0的值进行计数),而不是基于dataframe列。我猜想它的某种形式的逻辑掩盖了基于列,但df == df.a似乎不起作用

智慧

您可以使用eq,您可以传递axis参数来指定比较的方向,然后可以进行行总和以计算匹配值的数量:

df.eq(df.a, axis=0).sum(1) - 1

#0    1
#1    1
#2    1
#dtype: int64

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章