我在运行查询以查看特定列中的任何值是否小于 1 时,从我的熊猫数据帧中得到了一个非常奇怪的布尔结果。我的df
看起来像marketcap
列和assets
列:
marketcap assets
0 11730364.0 36675000.0
1 12288758.0 36838000.0
2 13033591.0 37314000.0
3 16235899.0 39775000.0
4 14888920.0 40114000.0
5 14237392.0 38979000.0
6 13474342.0 38166000.0
7 12562067.0 45970000.0
8 13896045.0 45619000.0
9 15347038.0 46759000.0
10 14044865.0 46744000.0
11 14361107.0 49749000.0
12 14317742.0 49425000.0
13 17608963.0 49592000.0
14 19412627.0 49624000.0
15 26690171.0 51732000.0
16 27470803.0 53220000.0
17 27674325.0 52500000.0
18 37433151.0 53103000.0
19 53900763.0 53811000.0
20 58714659.0 54113000.0
21 47562777.0 55545000.0
22 51949184.0 54622000.0
23 40667196.0 56321000.0
24 35314293.0 56854000.0
25 39607768.0 56221000.0
26 44291558.0 56401000.0
27 45258054.0 59492000.0
28 45072190.0 60893000.0
29 56131139.0 60376000.0
30 45072190.0 60509000.0
31 43852174.0 67544000.0
32 44607528.0 67333000.0
33 51205725.0 66435000.0
34 52042116.0 67265000.0
35 48083198.0 70056000.0
36 43083437.0 68674000.0
37 42748881.0 67977000.0
38 39496249.0 68755000.0
39 41985349.0 102904000.0
显然,对于以下代码,列marketcap
中的所有值都远高于 1:
df.marketcap.any() <= 1
它的结果是True
.有人可以向我解释一下,因为我不明白为什么这是真的,它认为小于 1。
谢谢
为什么这是真的,它认为小于1。
您正在执行:
df.marketcap.any() <= 1
df.marketcap.any()
的评估结果确实True
因为市值中有一个或多个非零元素,因此比较是
True <= 1
当True
和False
用于算术时,它确实True
,它确实与分别使用1
和0
具有相同的效果。请注意,它们的用法不仅限于比较 - 例如,您可以执行True+True+True
,并且会得到3
。