如何计算数据帧中值可被3或5整除的行数?

2024-03-28 15:57:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含两列的数据框:

 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行的数据帧。你知道吗

我试过这个,但这不是“条件”的解决方案,或者“更确切地说是”和“的解决方案”

score['count_zeros'].value_counts(dropna=False)
score['count_ones'].value_counts(dropna=False)

我需要解决这个问题


Tags: 数据falsevaluecountoneszeros数字解决方案
2条回答

我们还可以使用^{}方法进行过滤,结合pandas方法^{}^{}表示equal

df = df.query('ones.mod(5).eq(0) | zeros.mod(3).eq(0)')

    ones  zeros
5     10      6
6     11      6
9      4      6
13    14      3
26     6     12
29     9      9
30    10      9
33     4      6
35     5     11
36     7      9
42     5      8
43     5      7
44     5      8
46    11      3
48     7      6
49     8     12
53     8      3
55     9      3
57     9      6
59     4      3

将模530进行比较,并按^{}|进行位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

相关问题 更多 >