python - Pandas 比较引发 TypeError : cannot compare a dtyped [float64] array with a scalar of type [bool]

标签 python pandas typeerror dataframe

我的 dataFrame 具有以下结构:

Index: 1008 entries, Trial1.0 to Trial3.84
Data columns (total 5 columns):
CHUNK_NAME                    1008  non-null values
LAMBDA                        1008  non-null values
BETA                          1008  non-null values
HIT_RATE                      1008  non-null values
AVERAGE_RECIPROCAL_HITRATE    1008  non-null values

chunks=['300_321','322_343','344_365','366_387','388_408','366_408','344_408','322_408','300_408']
lam_beta=[(lambda1,beta1),(lambda1,beta2),(lambda1,beta3),...(lambda1,beta_n),(lambda2,beta1),(lambda2,beta2)...(lambda2,beta_n),........]

my_df.ix[my_df.CHUNK_NAME==chunks[0]&my_df.LAMBDA==lam_beta[0][0]]

我想获取特定 block 的 DataFrame 行,比如说 chunks[0] 和特定的 lambda 值。因此,在这种情况下,输出应该是 DataFrame 中具有 CHUNK_NAME='300_321'LAMBDA=lambda1 的所有行。每个将返回的 beta 值将有 n 行。但相反,我收到以下错误。任何解决此问题的帮助将不胜感激。

TypeError: cannot compare a dtyped [float64] array with a scalar of type [bool]

最佳答案

& 的优先级高于 ==。写:

my_df.ix[(my_df.CHUNK_NAME==chunks[0])&(my_df.LAMBDA==lam_beta[0][0])]
         ^                           ^ ^                            ^

关于python - Pandas 比较引发 TypeError : cannot compare a dtyped [float64] array with a scalar of type [bool],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20333435/

相关文章:

python - 影响变量的递归函数

python - 计算 Python pandas Dataframe 列并按日期排序

python - Pandas (Python)中的 "Anti-merge"

python - Flask Admin 使用自定义按钮扩展 "with select"-下拉菜单

python - 如果缺少属性则跳过 XML 标记

python - 是否可以在不使用 co_code 的情况下获取 python 字节码?

python - 类型错误 - Python Simpy

python - 无法从数据框中清除 NaN 行

python - 类型错误:不支持的操作数类型/: 'list' 和 'int'

javascript - 按钮、超时、警报未捕获类型错误 :