You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Pandas中筛选数据时遇TypeError:float与bool类型不支持&操作符

问题解决:Pandas错误‘unsupported operand type(s) for &: 'float' and 'bool'’

错误原因

你定义的mask_actor和mask_genres是DataFrame子集,而非布尔索引(布尔类型Series)。当用&操作符组合时,Pandas会尝试对两个DataFrame逐元素运算,但DataFrame中包含float类型列(如vote_average),布尔值与float值无法执行&运算,因此触发类型不兼容错误。

修正代码

将掩码改为直接存储str.contains()返回的布尔Series,不要用df[]包裹:

# 直接获取布尔掩码,而非DataFrame子集
mask_actor = df.cast.str.contains("Bruce Willis")
mask_genres = df.genres.str.contains("Adventure") & df.genres.str.contains("Family")

from IPython.display import HTML
# 用布尔掩码组合筛选目标数据
bruce = df.loc[mask_actor & mask_genres, ["title", "vote_average"]].sort_values(by="vote_average", ascending=False)
sup = HTML(bruce.to_html(escape=False))
sup

补充提示

如果原数据存在缺失值,建议在str.contains()中添加na=False参数,避免因缺失值导致的额外报错:

mask_actor = df.cast.str.contains("Bruce Willis", na=False)
mask_genres = df.genres.str.contains("Adventure", na=False) & df.genres.str.contains("Family", na=False)

内容的提问来源于stack exchange,提问作者Professor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:23:14