小编Car*_*ana的帖子

Pandas布尔数据帧搜索返回False但应为True

问题

我正在尝试搜索pandas数据帧以查找单个值.我正在搜索的数据帧列是float64类型.

工作实例

这是我想要的一个工作示例,其数据框的类型为int64.

myseries = pd.Series([1,4,0,7,5], index=[0,1,2,3,4])
myseries
Run Code Online (Sandbox Code Playgroud)

输出如下:

0    1
1    4
2    0
3    7
4    5
dtype: int64
Run Code Online (Sandbox Code Playgroud)

现在搜索:

myseries == 4
Run Code Online (Sandbox Code Playgroud)

结果:

0    False
1     True
2    False
3    False
4    False
dtype: bool
Run Code Online (Sandbox Code Playgroud)

不工作的例子

这是我的数据样本.

df['difference']
Run Code Online (Sandbox Code Playgroud)

结果

0    -2.979296
1    -0.423903
2     0.396515
...
48    0.450493
49   -1.216324
Name: priceDiff1, dtype: float64
Run Code Online (Sandbox Code Playgroud)

如您所见,它的类型为float64.现在这是问题所在.如果我复制第2行的值,并像之前一样创建条件语句,则不会返回True.

df['difference'] == 0.396515
Run Code Online (Sandbox Code Playgroud)

产量

0     False
1     False
2     False
...
48    False
49    False
Name: priceDiff1, dtype: bool
Run Code Online (Sandbox Code Playgroud)

第2行应为True.在这个问题上对此问题的任何帮助都会很棒.我认为正在发生的是,我的查询没有将类型设置为float64,并且可能假设它是一个不同的类型.我已经通过将列类型从float64向下转换为float32进行了测试,没有运气.

python search dataframe pandas

2
推荐指数
1
解决办法
349
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1

search ×1