我想本質上做一個COUNTIF在熊貓來計算一行中有多少項與第一列中的一個數相匹配。基於列值的熊貓COUNTIF
數據框:
a b c d
1 2 3 1
2 3 4 2
3 5 6 3
所以我想算成一排實例(B,C,d)匹配這一點。在第1行中,例如它應該是1,因爲只有d匹配a。
我尋覓了不少用於這一點,但迄今只發現了例子,其中的一個共同的號碼(如計算所有的值大於0),而不是基於一個數據幀列。我猜它的某種形式的邏輯是基於列口罩,但df == df.a
似乎沒有工作
我想本質上做一個COUNTIF在熊貓來計算一行中有多少項與第一列中的一個數相匹配。基於列值的熊貓COUNTIF
數據框:
a b c d
1 2 3 1
2 3 4 2
3 5 6 3
所以我想算成一排實例(B,C,d)匹配這一點。在第1行中,例如它應該是1,因爲只有d匹配a。
我尋覓了不少用於這一點,但迄今只發現了例子,其中的一個共同的號碼(如計算所有的值大於0),而不是基於一個數據幀列。我猜它的某種形式的邏輯是基於列口罩,但df == df.a
似乎沒有工作
您可以使用eq
,您可以通過一個axis
參數指定比較的方向,那麼你可以做一行總和來計算匹配值的數量:
df.eq(df.a, axis=0).sum(1) - 1
#0 1
#1 1
#2 1
#dtype: int64
df.apply(lambda x: (x == x[0]).sum()-1,axis=1)