首页 > 解决方案 > Pandas 不一致的布尔比较

问题描述

我遇到了一个可能有明显修复的问题。所以我有一个包含列表的 2x2 数据框。当我取第一行并将整行与我正在寻找的特定列表值进行比较时,返回的布尔数组完全为 False。这是不正确的,因为该行的第一个值具有我正在寻找的确切值。相反,当我比较数据框中的奇异值时,我得到了 True。为什么在对整行进行布尔运算时,第一列中的值是 False 而不是 True。提前致谢!

对第一行中的两个值返回 False。

In:
    static_levels = pd.DataFrame([[[58, 'Level']], [[24.4, 'Level'], [23.3, 'Level']]], ['Symbol 1', 'Symbol 2'])
    print(static_levels.loc['Symbol 1',:]==[58, 'Level'])
Out:
0    False
1    False
Name: Symbol 1, dtype: bool

但是,当仅比较第一行中的第一个值时,以下代码正确返回 True:

In: print(static_levels.loc['Symbol 1',0]==[58, 'Level'])
Out: True

标签: pythonpandas

解决方案


推荐阅读