Настройка
np.random.seed([3, 1415])
df = pd.DataFrame(
np.random.choice(range(-2, 3), size=(10, 10)),
columns=[*'abcdefghij']
)
df
a b c d e f g h i j
0 -2 1 0 1 0 0 1 0 1 -2
1 0 -2 -2 2 -2 0 0 -2 2 -1
2 1 0 2 2 2 2 1 1 1 2
3 1 -1 1 -2 2 2 0 0 -2 0
4 2 -2 2 -1 2 2 0 0 -2 0
5 2 1 -1 2 0 2 0 1 2 1
6 -2 1 1 -1 -2 -2 2 1 -2 2
7 -1 1 2 0 2 -2 -2 0 -2 2
8 2 1 -2 1 -1 -1 2 1 2 1
9 -1 1 2 -2 1 0 -2 -2 1 -1
numpy.in1d
Это должно быть очень быстро
np.in1d(df.values, [0, -1]).sum()
29
@ SandeepKadapa
производительность, аналогичная np.in1d(df.values, [0, -1]).sum()
np.isin(df.values.ravel(),[0,-1]).sum()
29
numpy.in1d
с np.count_nonzero
Это должно быть очень быстро (э-э)
np.count_nonzero(np.in1d(df.values, [0, -1]))
29
applymap
+ set.__contain__
+ numpy.sum
Это немного нахально
df.applymap({0, -1}.__contains__).values.sum()
29