gpt4 book ai didi

python - Pandas isin() 函数无法正确识别数字匹配

转载 作者:行者123 更新时间:2023-12-05 02:07:56 27 4
gpt4 key购买 nike

isin() 给我奇怪的结果。我创建了以下 DataFrame:

import pandas as pd
import numpy as np

test=pd.DataFrame({'1': np.linspace(0.0, 1.0, 11)})

>>> test['1']
0 0.0
1 0.1
2 0.2
3 0.3
4 0.4
5 0.5
6 0.6
7 0.7
8 0.8
9 0.9
10 1.0
Name: 1, dtype: float64

使用(显然)相同的数组 isin() 现在让我感到有些奇怪。

>>> test['1'].isin([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])
0 True
1 True
2 True
3 False
4 True
5 True
6 False
7 False
8 True
9 True
10 True
Name: 1, dtype: bool

我怀疑一些数值问题或与数据类型有关的问题。有人可以解释一下并告诉我如何预防吗?

最佳答案

不,它实际上是在正确识别它们。这更多地与 CPU 内部较低级别的物理学有关(请参阅 here),因此您需要注意这些事情:

print(test["1"].array)
<PandasArray>
[ 0.0, 0.1, 0.2,
0.30000000000000004, 0.4, 0.5,
0.6000000000000001, 0.7000000000000001, 0.8,
0.9, 1.0]
Length: 11, dtype: float64

但是。

print(test['1'].isin(np.linspace(0.0,1.0,11)))
0 True
1 True
2 True
3 True
4 True
5 True
6 True
7 True
8 True
9 True
10 True
Name: 1, dtype: bool

关于python - Pandas isin() 函数无法正确识别数字匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61411817/

27 4 0
文章推荐: jsf - Primefaces

or

Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com