我有一个包含两列的数据框:
ones zeros
0 6 13
1 8 7
2 11 7
3 8 5
4 11 5
5 10 6
6 11 6
7 7 4
8 9 4
9 4 6
10 7 5
11 6 7
12 9 10
13 14 3
14 7 7
15 7 7
16 9 7
17 7 10
18 9 5
19 12 7
20 4 8
21 6 4
22 11 5
23 9 7
24 3 10
25 7 4
26 6 12
27 9 7
28 7 4
29 9 9
... ... ...
4339 10 9
4340 7 10
4341 6 11
4342 4 6
4343 9 11
4344 5 11
4345 7 9
4346 9 5
4347 11 7
4348 9 10
4349 8 10
4350 6 5
4351 5 8
4352 5 7
4353 5 8
4354 7 13
4355 11 3
4356 6 7
4357 7 6
4358 8 12
4359 8 11
4360 7 11
4361 6 13
4362 8 3
4363 11 8
4364 9 3
4365 6 5
4366 9 6
4367 11 8
4368 4 3
我需要计算的行数,其中
ones
列下的数字可被5
整除,或者zeros
列下的数字可被3
整除的行。因为这是问题的小节。我已经准备好清洗后的数据框,并且该数据框具有2列和4369行。
我已经尝试过了,但这不是条件“OR”的解决方案,而是“AND”的解决方案
score['count_zeros'].value_counts(dropna=False)
score['count_ones'].value_counts(dropna=False)
我需要OR条件的解决方案
最佳答案
比较5
和3
与0
的模数,并用 boolean indexing
和|
过滤以得到按位OR
:
df = df[(df['ones'] % 5 == 0) | (df['zeros'] % 3 == 0)]
print (df)
ones zeros
5 10 6
6 11 6
9 4 6
13 14 3
26 6 12
29 9 9
4339 10 9
4342 4 6
4344 5 11
4345 7 9
4351 5 8
4352 5 7
4353 5 8
4355 11 3
4357 7 6
4358 8 12
4362 8 3
4364 9 3
4366 9 6
4368 4 3
如果需要计算匹配值的数量:
out = ((df['ones'] % 5 == 0) | (df['zeros'] % 3 == 0)).sum()
print (out)
20
关于python - 如何计算数据帧中其值可被3或5整除的行数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58078651/